summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2018-05-11 19:00:58 +0000
committerAdrian Prantl <aprantl@apple.com>2018-05-11 19:00:58 +0000
commit5103e48bada61dd0f55b4f8437696db4a709e328 (patch)
treef822b8bf8b48d6cb69596b2f6e76d72153354507
parent99d5c072f07e2f36ca40764803cd8cc66da319a1 (diff)
downloadbcm5719-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.mm8
-rw-r--r--lldb/unittests/Host/HostInfoTest.cpp8
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";
OpenPOWER on IntegriCloud