[clang] 3d0d7d8 - [clang][driver][darwin] support -target with Mac Catalyst triple without OS version

Alex Lorenz via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 28 18:46:23 PDT 2021


Author: Alex Lorenz
Date: 2021-10-28T18:46:10-07:00
New Revision: 3d0d7d8c5b669332f55c0af654b10f510bde1932

URL: https://github.com/llvm/llvm-project/commit/3d0d7d8c5b669332f55c0af654b10f510bde1932
DIFF: https://github.com/llvm/llvm-project/commit/3d0d7d8c5b669332f55c0af654b10f510bde1932.diff

LOG: [clang][driver][darwin] support -target with Mac Catalyst triple without OS version

Some users might omit the version and assume the compiler will target the initial
Mac Catalyst version.

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/Darwin.cpp
    clang/test/Driver/darwin-maccatalyst.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index 5062c33bb0966..bf1425fe65efa 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1820,7 +1820,12 @@ std::string getOSVersion(llvm::Triple::OSType OS, const llvm::Triple &Triple,
           << Triple.getOSName();
     break;
   case llvm::Triple::IOS:
-    Triple.getiOSVersion(Major, Minor, Micro);
+    if (Triple.isMacCatalystEnvironment() && !Triple.getOSMajorVersion()) {
+      Major = 13;
+      Minor = 1;
+      Micro = 0;
+    } else
+      Triple.getiOSVersion(Major, Minor, Micro);
     break;
   case llvm::Triple::TvOS:
     Triple.getOSVersion(Major, Minor, Micro);

diff  --git a/clang/test/Driver/darwin-maccatalyst.c b/clang/test/Driver/darwin-maccatalyst.c
index 0e388ea3abe67..ac8a2cb9b9f57 100644
--- a/clang/test/Driver/darwin-maccatalyst.c
+++ b/clang/test/Driver/darwin-maccatalyst.c
@@ -1,9 +1,12 @@
 // RUN: %clang -target x86_64-apple-ios13.1-macabi -c %s -### 2>&1 | \
 // RUN:   FileCheck --check-prefix=CHECK-VERSION1 %s
+// RUN: %clang -target x86_64-apple-ios-macabi -c %s -### 2>&1 | \
+// RUN:   FileCheck --check-prefix=CHECK-VERSION1 %s
 // RUN: %clang -target x86_64-apple-ios13.0-macabi -c %s -### 2>&1 | \
 // RUN:   FileCheck --check-prefix=CHECK-ERROR %s
 // RUN: %clang -target x86_64-apple-ios12.0-macabi -c %s -### 2>&1 | \
 // RUN:   FileCheck --check-prefix=CHECK-ERROR %s
 
+// CHECK-VERSION1-NOT: error:
 // CHECK-VERSION1: "x86_64-apple-ios13.1.0-macabi"
 // CHECK-ERROR: error: invalid version number in '-target x86_64-apple-ios


        


More information about the cfe-commits mailing list