diff options
author | David Blaikie <dblaikie@gmail.com> | 2011-12-09 18:32:50 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2011-12-09 18:32:50 +0000 |
commit | 72b61203f4473a415002f7674875a034cead5294 (patch) | |
tree | 077a116373f072cf32b22edbbf6acf4ef5da36c7 /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 5f5fa12413b0da1f345501541fea72186b6e3d21 (diff) | |
download | bcm5719-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.cpp | 5 |
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(); |