forked from OSchip/llvm-project
Ignore llvm.* globals.
It is not clear if llvm.global_ctors should or should not be in llvm.metadata, but in practice it is not and we need to ignore it for LTO. llvm-svn: 212351
This commit is contained in:
parent
4e63fc498c
commit
2dc0d9bddb
|
@ -238,16 +238,13 @@ uint32_t IRObjectFile::getSymbolFlags(DataRefImpl Symb) const {
|
|||
if (GV->hasLinkOnceLinkage() || GV->hasWeakLinkage())
|
||||
Res |= BasicSymbolRef::SF_Weak;
|
||||
|
||||
if (auto *Var = dyn_cast<GlobalVariable>(GV)) {
|
||||
if (GV->getName().startswith("llvm."))
|
||||
Res |= BasicSymbolRef::SF_FormatSpecific;
|
||||
else if (auto *Var = dyn_cast<GlobalVariable>(GV)) {
|
||||
if (Var->getSection() == StringRef("llvm.metadata"))
|
||||
Res |= BasicSymbolRef::SF_FormatSpecific;
|
||||
}
|
||||
|
||||
if (auto *F = dyn_cast<Function>(GV)) {
|
||||
if (F->getName().startswith("llvm."))
|
||||
Res |= BasicSymbolRef::SF_FormatSpecific;
|
||||
}
|
||||
|
||||
return Res;
|
||||
}
|
||||
|
||||
|
|
|
@ -13,3 +13,4 @@ declare void @SomeOtherFunction(...)
|
|||
|
||||
@var = global i32 0
|
||||
@llvm.used = appending global [1 x i8*] [i8* bitcast (i32* @var to i8*)], section "llvm.metadata"
|
||||
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* null, i8* null }]
|
||||
|
|
Loading…
Reference in New Issue