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 | 44d95b55711bc5c2e4055ebf1b5156e7fd3f0196 (patch) | |
tree | 25354f8f744c9426a9c7f05cad3609dd7b277b2b /lib | |
parent | efda0e8705e79a4b7de9f18b0d4618515f9e4bcc (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146265 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 59c5e7894f..50e07553a1 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/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(); |