A dllimport'd vtable always points one past the RTTI data, this means
that the initializer will never end up referencing the data. Our
emission is a harmless waste.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260062
91177308-0d34-0410-b5e6-
96231b3b80d8
if (VTable->hasInitializer())
continue;
- llvm::Constant *RTTI = getContext().getLangOpts().RTTIData
+ llvm::Constant *RTTI = getContext().getLangOpts().RTTIData &&
+ VTable->getDLLStorageClass() !=
+ llvm::GlobalValue::DLLImportStorageClass
? getMSCompleteObjectLocator(RD, Info)
: nullptr;
// RTTI-DAG: $"\01??_7S@@6B@" = comdat largest
// RTTI-DAG: $"\01??_7V@@6B@" = comdat largest
+// RTTI-NOT: @"\01??_R4U@@6B@"
+
struct S {
virtual ~S();
} s;