diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-12-05 22:40:20 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-12-05 22:40:20 +0000 |
commit | 317dcc3f2f37c95619a4db9c6d4c084983fdf7ba (patch) | |
tree | bf48fdc1f35961680b0f5279138953aedbb88af4 /clang/lib/CodeGen/ItaniumCXXABI.cpp | |
parent | b566848d68b43e94948b79dad4a338770da205c9 (diff) | |
download | bcm5719-llvm-317dcc3f2f37c95619a4db9c6d4c084983fdf7ba.tar.gz bcm5719-llvm-317dcc3f2f37c95619a4db9c6d4c084983fdf7ba.zip |
CodeGen: fix windows itanium RTTI in EH mode
When emitting RTTI for EH only, we would mark the locally defined (LinkOnceODR)
RTTI definition as dllimport, which is incorrect. Ensure that if we are
generating the type information for EH only, it is marked as LinkOnceODR and we
do not make it dllimport.
llvm-svn: 288721
Diffstat (limited to 'clang/lib/CodeGen/ItaniumCXXABI.cpp')
-rw-r--r-- | clang/lib/CodeGen/ItaniumCXXABI.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp index 48d47d23599..db648f23327 100644 --- a/clang/lib/CodeGen/ItaniumCXXABI.cpp +++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -3133,7 +3133,7 @@ llvm::Constant *ItaniumRTTIBuilder::BuildTypeInfo(QualType Ty, bool Force, if (DLLExport || (RD && RD->hasAttr<DLLExportAttr>())) { TypeName->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass); GV->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass); - } else if (RD && RD->hasAttr<DLLImportAttr>()) { + } else if (CGM.getLangOpts().RTTI && RD && RD->hasAttr<DLLImportAttr>()) { TypeName->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass); GV->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass); |