diff options
Diffstat (limited to 'clang/lib/CodeGen/CGVTables.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGVTables.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp index 275594237a5..4fb749fbde5 100644 --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -57,7 +57,12 @@ static void setThunkProperties(CodeGenModule &CGM, const ThunkInfo &Thunk, !Thunk.Return.isEmpty()); // Set the right visibility. - CGM.setGVProperties(ThunkFn, cast<CXXMethodDecl>(GD.getDecl())); + CGM.setGVProperties(ThunkFn, GD); + + if (!CGM.getCXXABI().exportThunk()) { + ThunkFn->setDLLStorageClass(llvm::GlobalValue::DefaultStorageClass); + ThunkFn->setDSOLocal(true); + } if (CGM.supportsCOMDAT() && ThunkFn->isWeakForLinker()) ThunkFn->setComdat(CGM.getModule().getOrInsertComdat(ThunkFn->getName())); |