diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-06-02 23:13:03 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-06-02 23:13:03 +0000 |
commit | da24e9cee35c466e5305e38b4e519f9c06b71fa7 (patch) | |
tree | e5bf0defb07fa910c53570d37b4b9c003e09377f /clang/lib/CodeGen/ItaniumCXXABI.cpp | |
parent | 0f7f731966aad7b1dc336eb33b22e78295e16d68 (diff) | |
download | bcm5719-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.cpp | 6 |
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; } |