summaryrefslogtreecommitdiffstats
path: root/clang/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
commit77dcc726de2e504ec0e6a4a2201d9485f72c1086 (patch)
tree06f99a7efc8395e7fae3fbfa73743da52a5e29f0 /clang/test/SemaCXX/undefined-internal.cpp
parent95c0feb5e0aa8cefa660bb74bebcecfd2b6045e5 (diff)
downloadbcm5719-llvm-77dcc726de2e504ec0e6a4a2201d9485f72c1086.tar.gz
bcm5719-llvm-77dcc726de2e504ec0e6a4a2201d9485f72c1086.zip
Make sure template argument deduction is consistently performed in an unevaluated context.
llvm-svn: 150049
Diffstat (limited to 'clang/test/SemaCXX/undefined-internal.cpp')
-rw-r--r--clang/test/SemaCXX/undefined-internal.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/undefined-internal.cpp b/clang/test/SemaCXX/undefined-internal.cpp
index a253020b8ef..154172001e7 100644
--- a/clang/test/SemaCXX/undefined-internal.cpp
+++ b/clang/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); }
+}
OpenPOWER on IntegriCloud