summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/undefined-internal.cpp
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2016-04-19 06:19:52 +0000
committerSerge Pavlov <sepavloff@gmail.com>2016-04-19 06:19:52 +0000
commit7dcc97e7ac0a7184f527c77178ecc9db7b412dc8 (patch)
tree25b03f63bb0010920c7624e5ec6478f67b2d953f /clang/test/SemaCXX/undefined-internal.cpp
parent77fa84eadd926bd95b9893c9fba949eb01bd50be (diff)
downloadbcm5719-llvm-7dcc97e7ac0a7184f527c77178ecc9db7b412dc8.tar.gz
bcm5719-llvm-7dcc97e7ac0a7184f527c77178ecc9db7b412dc8.zip
Warn if function or variable cannot be implicitly instantiated
With this patch compiler emits warning if it tries to make implicit instantiation of a template but cannot find the template definition. The warning can be suppressed by explicit instantiation declaration or by command line options -Wundefined-var-template and -Wundefined-func-template. The implementation follows the discussion of http://reviews.llvm.org/D12326. Differential Revision: http://reviews.llvm.org/D16396 llvm-svn: 266719
Diffstat (limited to 'clang/test/SemaCXX/undefined-internal.cpp')
-rw-r--r--clang/test/SemaCXX/undefined-internal.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/undefined-internal.cpp b/clang/test/SemaCXX/undefined-internal.cpp
index 29ca5de6d41..59e6fdf9af0 100644
--- a/clang/test/SemaCXX/undefined-internal.cpp
+++ b/clang/test/SemaCXX/undefined-internal.cpp
@@ -82,6 +82,7 @@ namespace test5 {
static int var; // expected-warning {{variable 'test5::B<test5::(anonymous namespace)::A>::var' has internal linkage but is not defined}}
static void foo(); // expected-warning {{function 'test5::B<test5::(anonymous namespace)::A>::foo' has internal linkage but is not defined}}
};
+ extern template int B<A>::var;
void test() {
B<A>::var = 0; // expected-note {{used here}}
OpenPOWER on IntegriCloud