aboutsummaryrefslogtreecommitdiff
path: root/test/SemaTemplate/default-expr-arguments.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-11-23 17:04:52 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-11-23 17:04:52 +0000
commit63b6ebe4e732f20fa24ea0666ed438dd5004cc20 (patch)
tree483ccd81b45e5ce99380a63a147c4d1763088f47 /test/SemaTemplate/default-expr-arguments.cpp
parent919b7e69781daf68766bb9af11ca1b9f246ce935 (diff)
Sema: Provide a valid source location when instantiating templates based on a CXXDefaultArgExpr.
Fixes PR13758. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168521 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaTemplate/default-expr-arguments.cpp')
-rw-r--r--test/SemaTemplate/default-expr-arguments.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/SemaTemplate/default-expr-arguments.cpp b/test/SemaTemplate/default-expr-arguments.cpp
index 1eefa9f895..4e76a5a04c 100644
--- a/test/SemaTemplate/default-expr-arguments.cpp
+++ b/test/SemaTemplate/default-expr-arguments.cpp
@@ -303,3 +303,21 @@ namespace PR12581 {
{
}
}
+
+namespace PR13758 {
+ template <typename T> struct move_from {
+ T invalid; // expected-error {{field has incomplete type 'void'}}
+ };
+ template <class K>
+ struct unordered_map {
+ explicit unordered_map(int n = 42);
+ unordered_map(move_from<K> other);
+ };
+ template<typename T>
+ void StripedHashTable() {
+ new unordered_map<void>(); // expected-note {{in instantiation of template class 'PR13758::move_from<void>' requested here}}
+ }
+ void tt() {
+ StripedHashTable<int>(); // expected-note {{in instantiation of function template specialization 'PR13758::StripedHashTable<int>' requested here}}
+ }
+}