diff options
| author | Adrian Prantl <aprantl@apple.com> | 2018-05-11 19:00:58 +0000 |
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2018-05-11 19:00:58 +0000 |
| commit | 5103e48bada61dd0f55b4f8437696db4a709e328 (patch) | |
| tree | f822b8bf8b48d6cb69596b2f6e76d72153354507 | |
| parent | 99d5c072f07e2f36ca40764803cd8cc66da319a1 (diff) | |
| download | bcm5719-llvm-5103e48bada61dd0f55b4f8437696db4a709e328.tar.gz bcm5719-llvm-5103e48bada61dd0f55b4f8437696db4a709e328.zip | |
Fix a regression in r332111. The LLDB.framework path component is not
usually the last component.
llvm-svn: 332120
| -rw-r--r-- | lldb/source/Host/macosx/HostInfoMacOSX.mm | 8 | ||||
| -rw-r--r-- | lldb/unittests/Host/HostInfoTest.cpp | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lldb/source/Host/macosx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/HostInfoMacOSX.mm index 161182616cd..07219968e09 100644 --- a/lldb/source/Host/macosx/HostInfoMacOSX.mm +++ b/lldb/source/Host/macosx/HostInfoMacOSX.mm @@ -253,7 +253,13 @@ bool HostInfoMacOSX::ComputeClangDirectory(FileSpec &lldb_shlib_spec, auto r_end = llvm::sys::path::rend(raw_path); // Check for a Posix-style build of LLDB. - if (rev_it == r_end || *rev_it != "LLDB.framework") + while (rev_it != r_end) { + if (*rev_it == "LLDB.framework") + break; + ++rev_it; + } + + if (rev_it == r_end) return HostInfoPosix::ComputeClangDirectory(file_spec); // Inside Xcode and in Xcode toolchains LLDB is always in lockstep diff --git a/lldb/unittests/Host/HostInfoTest.cpp b/lldb/unittests/Host/HostInfoTest.cpp index 4205ce36125..d18a6a5b2f6 100644 --- a/lldb/unittests/Host/HostInfoTest.cpp +++ b/lldb/unittests/Host/HostInfoTest.cpp @@ -63,8 +63,14 @@ TEST_F(HostInfoTest, MacOSX) { std::string posix = "/usr/lib/liblldb.dylib"; EXPECT_FALSE(HostInfoMacOSXTest::ComputeClangDir(posix).empty()); + std::string framework = + "/SharedFrameworks/LLDB.framework"; + std::string framework_clang = + "/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/clang"; + EXPECT_EQ(HostInfoMacOSXTest::ComputeClangDir(framework), framework_clang); + std::string xcode = - "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework"; + "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A"; std::string xcode_clang = "/Applications/Xcode.app/Contents/Developer/Toolchains/" "XcodeDefault.xctoolchain/usr/lib/swift/clang"; |

