aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGVTables.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2015-05-09 21:10:07 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2015-05-09 21:10:07 +0000
commitc7da6da58ec7447aabcae967dcc7bf222a5dff76 (patch)
tree93ada3ab35d01f66fd6d473c2e01372dd65c9c40 /clang/lib/CodeGen/CGVTables.cpp
parent1af9c7b9d4f0c0150419aa7887e9f67262cc615c (diff)
downloadllvm-c7da6da58ec7447aabcae967dcc7bf222a5dff76.zip
llvm-c7da6da58ec7447aabcae967dcc7bf222a5dff76.tar.gz
llvm-c7da6da58ec7447aabcae967dcc7bf222a5dff76.tar.bz2
Revert r236879, "Do not emit thunks with available_externally linkage in comdats"
It broke pecoff, at least i686-cygwin. llvm-svn: 236937
Diffstat (limited to 'clang/lib/CodeGen/CGVTables.cpp')
-rw-r--r--clang/lib/CodeGen/CGVTables.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp
index 7359bf4..57370a6 100644
--- a/clang/lib/CodeGen/CGVTables.cpp
+++ b/clang/lib/CodeGen/CGVTables.cpp
@@ -378,6 +378,9 @@ void CodeGenFunction::GenerateThunk(llvm::Function *Fn,
// Set the right linkage.
CGM.setFunctionLinkage(GD, Fn);
+ if (CGM.supportsCOMDAT() && Fn->isWeakForLinker())
+ Fn->setComdat(CGM.getModule().getOrInsertComdat(Fn->getName()));
+
// Set the right visibility.
const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
setThunkVisibility(CGM, MD, Thunk, Fn);
@@ -458,7 +461,6 @@ void CodeGenVTables::emitThunk(GlobalDecl GD, const ThunkInfo &Thunk,
CGM.getCXXABI().setThunkLinkage(ThunkFn, ForVTable, GD,
!Thunk.Return.isEmpty());
}
- CGM.maybeSetTrivialComdat(*ThunkFn);
}
void CodeGenVTables::maybeEmitThunkForVTable(GlobalDecl GD,