summaryrefslogtreecommitdiff
path: root/test/SemaCXX/undefined-internal.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-02-08 03:07:05 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-02-08 03:07:05 +0000
commit59a839c5a4eecfeb495fc64224f6a949d1c5b2da (patch)
treeb865e7d7358489fe91d173285649400c9f7baa31 /test/SemaCXX/undefined-internal.cpp
parent7b318d16992cb68567c3ee217b86cac2ed11d5d8 (diff)
downloadclang-59a839c5a4eecfeb495fc64224f6a949d1c5b2da.tar.gz
Make sure template argument deduction is consistently performed in an unevaluated context.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150049 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/undefined-internal.cpp')
-rw-r--r--test/SemaCXX/undefined-internal.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/SemaCXX/undefined-internal.cpp b/test/SemaCXX/undefined-internal.cpp
index a253020b8e..154172001e 100644
--- a/test/SemaCXX/undefined-internal.cpp
+++ b/test/SemaCXX/undefined-internal.cpp
@@ -170,3 +170,14 @@ namespace cxx11_odr_rules {
b();
}
}
+
+
+namespace OverloadUse {
+ namespace {
+ void f();
+ void f(int); // expected-warning {{function 'OverloadUse::<anonymous namespace>::f' has internal linkage but is not defined}}
+ }
+ template<void x()> void t(int*) { x(); }
+ template<void x(int)> void t(long*) { x(10); } // expected-note {{used here}}
+ void g() { long a; t<f>(&a); }
+}