From 1126d02c0ca06557dffdd1cf870693f2647bdc53 Mon Sep 17 00:00:00 2001 From: Kevin Enderby Date: Tue, 20 May 2014 20:32:18 +0000 Subject: =?UTF-8?q?Update=20MachOObjectFile::getSymbolAddress=20so=20it=20?= =?UTF-8?q?returns=20UnknownAddressOrSize=20for=20undefined=20symbols.=20?= =?UTF-8?q?=20Allowing=20llvm-nm=20to=20print=20spaces=20instead=20of=200?= =?UTF-8?q?=E2=80=99s=20for=20the=20value=20of=20undefined=20symbols=20in?= =?UTF-8?q?=20Mach-O=20files.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit llvm-svn: 209235 --- llvm/lib/Object/MachOObjectFile.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Object/MachOObjectFile.cpp') diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 0951460..9c581d3 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -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; } -- cgit v1.1