summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/ItaniumCXXABI.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-06-02 23:13:03 +0000
committerHans Wennborg <hans@hanshq.net>2014-06-02 23:13:03 +0000
commitda24e9cee35c466e5305e38b4e519f9c06b71fa7 (patch)
treee5bf0defb07fa910c53570d37b4b9c003e09377f /clang/lib/CodeGen/ItaniumCXXABI.cpp
parent0f7f731966aad7b1dc336eb33b22e78295e16d68 (diff)
downloadbcm5719-llvm-da24e9cee35c466e5305e38b4e519f9c06b71fa7.tar.gz
bcm5719-llvm-da24e9cee35c466e5305e38b4e519f9c06b71fa7.zip
Itanium ABI: Update getAddrOfVTable to set the DLL storage class for vtables
This corresponds to the same change for the MS ABI in r209908. Differential Revision: http://reviews.llvm.org/D3993 llvm-svn: 210054
Diffstat (limited to 'clang/lib/CodeGen/ItaniumCXXABI.cpp')
-rw-r--r--clang/lib/CodeGen/ItaniumCXXABI.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp
index f5d23726a9c..951174b4858 100644
--- a/clang/lib/CodeGen/ItaniumCXXABI.cpp
+++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp
@@ -1069,6 +1069,12 @@ llvm::GlobalVariable *ItaniumCXXABI::getAddrOfVTable(const CXXRecordDecl *RD,
VTable = CGM.CreateOrReplaceCXXRuntimeVariable(
Name, ArrayType, llvm::GlobalValue::ExternalLinkage);
VTable->setUnnamedAddr(true);
+
+ if (RD->hasAttr<DLLImportAttr>())
+ VTable->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass);
+ else if (RD->hasAttr<DLLExportAttr>())
+ VTable->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass);
+
return VTable;
}
OpenPOWER on IntegriCloud