[ELF] Set the symbol type for undefined atoms properly

llvm-svn: 178466
This commit is contained in:
Shankar Easwaran 2013-04-01 15:12:54 +00:00
parent f8213b4eb3
commit cbe06ca340
3 changed files with 6 additions and 3 deletions

View File

@ -748,7 +748,10 @@ void SymbolTable<ELFT>::addUndefinedAtom(Elf_Sym &sym,
unsigned char binding = 0, type = 0;
sym.st_value = 0;
type = llvm::ELF::STT_NOTYPE;
binding = llvm::ELF::STB_WEAK;
if (ua->canBeNull())
binding = llvm::ELF::STB_WEAK;
else
binding = llvm::ELF::STB_GLOBAL;
sym.setBindingAndType(binding, type);
}

View File

@ -14,7 +14,7 @@
# CHECK: 00000080 T main
# CHECK: 00001000 A _end
# CHECK: 00001000 A end
# CHECK: w _entrypoint
# CHECK: U _entrypoint
defined-atoms:
- name: .text

View File

@ -24,4 +24,4 @@ CHECKSYMS: 00001000 B a
CHECKSYMS: 00001004 A __bss_end
CHECKSYMS: 00001004 A _end
CHECKSYMS: 00001004 A end
CHECKSYMS: w _start
CHECKSYMS: U _start