diff options
| author | Davide Italiano <davide@freebsd.org> | 2018-01-05 02:50:24 +0000 |
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2018-01-05 02:50:24 +0000 |
| commit | c910aa67b3f44cef292f6e4c48cf1eede2e7a82b (patch) | |
| tree | 9d0e46e599f624b15c1041f427ace15a7365f939 /lldb/source/Utility/ArchSpec.cpp | |
| parent | 8587dfd94b797dee7892a9a846c2926759444783 (diff) | |
| download | bcm5719-llvm-c910aa67b3f44cef292f6e4c48cf1eede2e7a82b.tar.gz bcm5719-llvm-c910aa67b3f44cef292f6e4c48cf1eede2e7a82b.zip | |
[ArchSpec] Don't consider Unknown MachO64 as invalid.
Even without a proper arch we can access line tables, etc..
<rdar://problem/35778442>
llvm-svn: 321856
Diffstat (limited to 'lldb/source/Utility/ArchSpec.cpp')
| -rw-r--r-- | lldb/source/Utility/ArchSpec.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp index a10fe78260b..ed236f5f641 100644 --- a/lldb/source/Utility/ArchSpec.cpp +++ b/lldb/source/Utility/ArchSpec.cpp @@ -890,7 +890,12 @@ void ArchSpec::MergeFrom(const ArchSpec &other) { GetTriple().setOS(other.GetTriple().getOS()); if (GetTriple().getArch() == llvm::Triple::UnknownArch) { GetTriple().setArch(other.GetTriple().getArch()); - UpdateCore(); + + // MachO unknown64 isn't really invalid as the debugger can + // still obtain information from the binary, e.g. line tables. + // As such, we don't update the core here. + if (other.GetCore() != eCore_uknownMach64) + UpdateCore(); } if (GetTriple().getEnvironment() == llvm::Triple::UnknownEnvironment && !TripleVendorWasSpecified()) { |

