LinkOnce definitions have default scope, like weak definitions. Otherwise, the linker may not be able to match LinkOnce definition from one module with an exteranl reference from other module.

llvm-svn: 53580
This commit is contained in:
Devang Patel 2008-07-15 00:00:11 +00:00
parent 5470e0c7e1
commit 7688bed4ff
1 changed files with 2 additions and 1 deletions

View File

@ -224,7 +224,8 @@ void LTOModule::addDefinedSymbol(GlobalValue* def, Mangler &mangler,
// set scope part // set scope part
if ( def->hasHiddenVisibility() ) if ( def->hasHiddenVisibility() )
attr |= LTO_SYMBOL_SCOPE_HIDDEN; attr |= LTO_SYMBOL_SCOPE_HIDDEN;
else if ( def->hasExternalLinkage() || def->hasWeakLinkage() ) else if ( def->hasExternalLinkage() || def->hasWeakLinkage()
|| def->hasLinkOnceLinkage() )
attr |= LTO_SYMBOL_SCOPE_DEFAULT; attr |= LTO_SYMBOL_SCOPE_DEFAULT;
else else
attr |= LTO_SYMBOL_SCOPE_INTERNAL; attr |= LTO_SYMBOL_SCOPE_INTERNAL;