summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-02-03 06:30:58 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-02-03 06:30:58 +0000
commitaf5b92e8f78142ef65359b6d690c4a38384d98c6 (patch)
tree0484351d602f6ce4726f7f0d231c13cd42d4fa91 /clang/lib/Sema
parentede626799301430e6afe26b5638d0875206fd00e (diff)
downloadbcm5719-llvm-af5b92e8f78142ef65359b6d690c4a38384d98c6.tar.gz
bcm5719-llvm-af5b92e8f78142ef65359b6d690c4a38384d98c6.zip
Revert 124768.
This reopens PR99114, but that one at least can be avoided with an #include. PR9130 cannot. llvm-svn: 124780
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 0565a7fef90..b4c375d638a 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -7118,6 +7118,13 @@ bool Sema::DefineUsedVTables() {
switch (KeyFunction->getTemplateSpecializationKind()) {
case TSK_Undeclared:
case TSK_ExplicitSpecialization:
+ // The key function is in another translation unit. Mark all of the
+ // virtual members of this class as referenced so that we can build a
+ // vtable anyway (in order to do devirtualization when optimizations
+ // are turned on for example.
+ MarkVirtualMembersReferenced(Loc, Class);
+ continue;
+
case TSK_ExplicitInstantiationDeclaration:
// The key function is in another translation unit.
continue;
OpenPOWER on IntegriCloud