summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2011-12-09 18:32:50 +0000
committerDavid Blaikie <dblaikie@gmail.com>2011-12-09 18:32:50 +0000
commit72b61203f4473a415002f7674875a034cead5294 (patch)
tree077a116373f072cf32b22edbbf6acf4ef5da36c7 /clang/lib/Sema/SemaDeclCXX.cpp
parent5f5fa12413b0da1f345501541fea72186b6e3d21 (diff)
downloadbcm5719-llvm-72b61203f4473a415002f7674875a034cead5294.tar.gz
bcm5719-llvm-72b61203f4473a415002f7674875a034cead5294.zip
Provide a separate warning for weak vtables in explicit template instantiations. There's no (current) way to fix such templates to emit strong symbols/vtables, but perhaps users want to know about the cost being incurred anyway.
llvm-svn: 146265
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 59c5e7894fd..50e07553a1b 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -10617,7 +10617,10 @@ bool Sema::DefineUsedVTables() {
if (!KeyFunction ||
(KeyFunction->hasBody(KeyFunctionDef) &&
KeyFunctionDef->isInlined()))
- Diag(Class->getLocation(), diag::warn_weak_vtable) << Class;
+ Diag(Class->getLocation(), Class->getTemplateSpecializationKind() ==
+ TSK_ExplicitInstantiationDefinition
+ ? diag::warn_weak_template_vtable : diag::warn_weak_vtable)
+ << Class;
}
}
VTableUses.clear();
OpenPOWER on IntegriCloud