mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-05 14:34:55 +00:00
Update MachOObjectFile::getSymbolAddress so it returns UnknownAddressOrSize
for undefined symbols. Allowing llvm-nm to print spaces instead of 0’s for the value of undefined symbols in Mach-O files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209235 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
50d4008b47
commit
e3f74564ff
@ -472,10 +472,18 @@ error_code MachOObjectFile::getSymbolAddress(DataRefImpl Symb,
|
||||
uint64_t &Res) const {
|
||||
if (is64Bit()) {
|
||||
MachO::nlist_64 Entry = getSymbol64TableEntry(Symb);
|
||||
Res = Entry.n_value;
|
||||
if ((Entry.n_type & MachO::N_TYPE) == MachO::N_UNDF &&
|
||||
Entry.n_value == 0)
|
||||
Res = UnknownAddressOrSize;
|
||||
else
|
||||
Res = Entry.n_value;
|
||||
} else {
|
||||
MachO::nlist Entry = getSymbolTableEntry(Symb);
|
||||
Res = Entry.n_value;
|
||||
if ((Entry.n_type & MachO::N_TYPE) == MachO::N_UNDF &&
|
||||
Entry.n_value == 0)
|
||||
Res = UnknownAddressOrSize;
|
||||
else
|
||||
Res = Entry.n_value;
|
||||
}
|
||||
return object_error::success;
|
||||
}
|
||||
|
@ -55,14 +55,14 @@ WEAK-ELF64: 0000000000000000 V x2
|
||||
ABSOLUTE-ELF64: 0000000000000123 a a1
|
||||
ABSOLUTE-ELF64: 0000000000000123 A a2
|
||||
|
||||
macho: 00000000 U _SomeOtherFunction
|
||||
macho: U _SomeOtherFunction
|
||||
macho: 00000000 T _main
|
||||
macho: 00000000 U _puts
|
||||
macho: U _puts
|
||||
|
||||
macho64: 0000000000000028 s L_.str
|
||||
macho64: 0000000000000000 U _SomeOtherFunction
|
||||
macho64: U _SomeOtherFunction
|
||||
macho64: 0000000000000000 T _main
|
||||
macho64: 0000000000000000 U _puts
|
||||
macho64: U _puts
|
||||
|
||||
|
||||
Test that nm uses addresses even with ELF .o files.
|
||||
|
@ -13,7 +13,7 @@ CHECK-AR: 0000000000000068 s EH_frame0
|
||||
CHECK-AR: 000000000000003b s L_.str
|
||||
CHECK-AR: 0000000000000000 T _main
|
||||
CHECK-AR: 0000000000000080 S _main.eh
|
||||
CHECK-AR: 0000000000000000 U _printf
|
||||
CHECK-AR: U _printf
|
||||
CHECK-AR: macho-universal-archive.x86_64.i386:i386:foo.o:
|
||||
CHECK-AR: 00000008 S _bar
|
||||
CHECK-AR: 00000000 T _foo
|
||||
|
Loading…
x
Reference in New Issue
Block a user