Make LTO expect common and weak to be represented differently.

Reading .bc files from before that change will no longer work.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51457 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dale Johannesen 2008-05-23 00:15:10 +00:00
parent 31e5bdccf2
commit ed1ec3aa6b

View File

@ -191,17 +191,7 @@ void LTOModule::addDefinedSymbol(GlobalValue* def, Mangler &mangler,
// set definition part // set definition part
if ( def->hasWeakLinkage() || def->hasLinkOnceLinkage() ) { if ( def->hasWeakLinkage() || def->hasLinkOnceLinkage() ) {
// lvm bitcode does not differenciate between weak def data attr |= LTO_SYMBOL_DEFINITION_WEAK;
// and tentative definitions!
// HACK HACK HACK
// C++ does not use tentative definitions, but does use weak symbols
// so guess that anything that looks like a C++ symbol is weak and others
// are tentative definitions
if ( (strncmp(symbolName, "__Z", 3) == 0) )
attr |= LTO_SYMBOL_DEFINITION_WEAK;
else {
attr |= LTO_SYMBOL_DEFINITION_TENTATIVE;
}
} }
else if ( def->hasCommonLinkage()) { else if ( def->hasCommonLinkage()) {
attr |= LTO_SYMBOL_DEFINITION_TENTATIVE; attr |= LTO_SYMBOL_DEFINITION_TENTATIVE;