summaryrefslogtreecommitdiffstats
path: root/llvm/tools/dsymutil/MachODebugMapParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/dsymutil/MachODebugMapParser.cpp')
-rw-r--r--llvm/tools/dsymutil/MachODebugMapParser.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/tools/dsymutil/MachODebugMapParser.cpp b/llvm/tools/dsymutil/MachODebugMapParser.cpp
index bec95915a0f..76fc7612e68 100644
--- a/llvm/tools/dsymutil/MachODebugMapParser.cpp
+++ b/llvm/tools/dsymutil/MachODebugMapParser.cpp
@@ -197,10 +197,14 @@ void MachODebugMapParser::loadCurrentObjectFileSymbols() {
CurrentObjectAddresses.clear();
for (auto Sym : CurrentObjectHolder.Get().symbols()) {
-
- uint64_t Addr = Sym.getValue();
- if (Addr == UnknownAddress)
- continue;
+ uint64_t Addr;
+ if (Sym.getFlags() & SymbolRef::SF_Common) {
+ Addr = Sym.getCommonSize();
+ } else {
+ Addr = Sym.getValue();
+ if (Addr == UnknownAddress)
+ continue;
+ }
ErrorOr<StringRef> Name = Sym.getName();
if (!Name)
continue;
OpenPOWER on IntegriCloud