[Lldb-commits] [lldb] Fix the DEVELOPER_DIR computation (PR #70528)
Adrian Prantl via lldb-commits
lldb-commits at lists.llvm.org
Fri Oct 27 17:34:36 PDT 2023
https://github.com/adrian-prantl created https://github.com/llvm/llvm-project/pull/70528
The code was incorrectly going into the wrong direction by removing one component instead of appendeing /Developer to it. Due to fallback mechanisms in xcrun this never seemed to have caused any issues.
>From d5e0dee978e75f5d623f6a96121ba277a25c40e9 Mon Sep 17 00:00:00 2001
From: Adrian Prantl <aprantl at apple.com>
Date: Fri, 27 Oct 2023 17:32:43 -0700
Subject: [PATCH] Fix the DEVELOPER_DIR computation
The code was incorrectly going into the wrong direction by removing
one component instead of appendeing /Developer to it. Due to fallback
mechanisms in xcrun this never seemed to have caused any issues.
---
lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
index e3506a01c606b78..33d94504fe70f8c 100644
--- a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
+++ b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
@@ -461,13 +461,11 @@ static void ParseOSVersion(llvm::VersionTuple &version, NSString *Key) {
// Invoke xcrun with the shlib dir.
if (FileSpec fspec = HostInfo::GetShlibDir()) {
if (FileSystem::Instance().Exists(fspec)) {
- std::string contents_dir =
- XcodeSDK::FindXcodeContentsDirectoryInPath(fspec.GetPath());
- llvm::StringRef shlib_developer_dir =
- llvm::sys::path::parent_path(contents_dir);
- if (!shlib_developer_dir.empty()) {
- auto sdk =
- xcrun(sdk_name, show_sdk_path, std::move(shlib_developer_dir));
+ llvm::SmallString<0> shlib_developer_dir(
+ XcodeSDK::FindXcodeContentsDirectoryInPath(fspec.GetPath()));
+ llvm::sys::path::append(shlib_developer_dir, "Developer");
+ if (FileSystem::Instance().Exists(shlib_developer_dir)) {
+ auto sdk = xcrun(sdk_name, show_sdk_path, shlib_developer_dir);
if (!sdk)
return sdk.takeError();
if (!sdk->empty())
More information about the lldb-commits
mailing list