[PATCH] D118862: [clang][driver] add clang driver support for emitting macho files with two build version load commands

2022-02-14 Thread Alex Lorenz via Phabricator via cfe-commits
arphaman added a comment.

In D118862#3321343 , @gulfem wrote:

> The following two tests started failing in our bots:
>
>   Clang :: Driver/darwin-ld-platform-version-target-version.c
>   Clang :: Driver/darwin-zippered-target-version.c
>
> https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8822219707275734081/overview
>
> The error message is as the following:
>
>   Script:
>   --
>   : 'RUN: at line 1';   touch 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>   : 'RUN: at line 3';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
> x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64-apple-macos10.15 
> -isysroot 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
>  -mlinker-version=520 -### 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>  2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
>   : 'RUN: at line 5';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
> x86_64-apple-macos10.14.3 -darwin-target-variant x86_64-apple-ios13.1-macabi 
> -isysroot 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
>  -mlinker-version=520 -### 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>  2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
> --check-prefix=CHECK-INV 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
>   : 'RUN: at line 8';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
> arm64-apple-ios13.1-macabi -darwin-target-variant arm64-apple-macos10.15 
> -isysroot 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
>  -mlinker-version=520 -### 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>  2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
> --check-prefix=ARM64_NEW 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
>   : 'RUN: at line 10';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
> arm64-apple-macos10.15 -darwin-target-variant arm64-apple-ios13.1-macabi  
> -isysroot 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
>  -mlinker-version=520 -### 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>  2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
> --check-prefix=ARM64_NEW-INV 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
>   : 'RUN: at line 12';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
> arm64-apple-ios13.1-macabi -darwin-target-variant arm64-apple-macos10.15 
> -isysroot 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
>  -mlinker-version=400 -### 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>  2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
> --check-prefix=ARM64_OLD 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
>   : 'RUN: at line 14';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
> arm64-apple-macos10.15 -darwin-target-variant arm64-apple-ios13.1-macabi 
> -isysroot 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
>  -mlinker-version=400 -### 
> /b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
>  2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
> --check-prefix=ARM64_OLD-INV 
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
>   --
>   Exit Code: 1
>   
>   Command Output (stderr):
>   --
>   
> /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c:29:15:
>  error: ARM64_OLD: expected string not found in input
>   // ARM64_OLD: "-maccatalyst_version_min" "14.0.0" "-macosx_version_min" 
> "11.0.0"
> ^
>   :1:1: note: scanning from here
>   Fuchsia clang version 15.0.0 (https://llvm.googlesource.com/a/llvm-project 
> cccef321096c20825fe8738045c1d91d3b9fd57d)
>   ^
>   :5:109: note: possible intended match here
>"/b/s/w/ir/x/w/staging/llvm_build/bin/ld64.lld" "-demangle" "-dynamic" 
> "-arch" "arm64" "-platform_version" "mac catalyst" "14.0.0" "13.1" 
> "-platform_version" "macos" "11.0.0" "10.15" "-syslibroot" 
> "/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk"
>  "-o" "a.out" 
> 

[PATCH] D118862: [clang][driver] add clang driver support for emitting macho files with two build version load commands

2022-02-14 Thread Gulfem Savrun Yeniceri via Phabricator via cfe-commits
gulfem added a comment.

The following two tests started failing in our bots:

  Clang :: Driver/darwin-ld-platform-version-target-version.c
  Clang :: Driver/darwin-zippered-target-version.c

https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8822219707275734081/overview

The error message is as the following:

  Script:
  --
  : 'RUN: at line 1';   touch 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
  : 'RUN: at line 3';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64-apple-macos10.15 
-isysroot 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
 -mlinker-version=520 -### 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
 2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
  : 'RUN: at line 5';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
x86_64-apple-macos10.14.3 -darwin-target-variant x86_64-apple-ios13.1-macabi 
-isysroot 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
 -mlinker-version=520 -### 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
 2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
--check-prefix=CHECK-INV 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
  : 'RUN: at line 8';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
arm64-apple-ios13.1-macabi -darwin-target-variant arm64-apple-macos10.15 
-isysroot 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
 -mlinker-version=520 -### 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
 2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
--check-prefix=ARM64_NEW 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
  : 'RUN: at line 10';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
arm64-apple-macos10.15 -darwin-target-variant arm64-apple-ios13.1-macabi  
-isysroot 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
 -mlinker-version=520 -### 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
 2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
--check-prefix=ARM64_NEW-INV 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
  : 'RUN: at line 12';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
arm64-apple-ios13.1-macabi -darwin-target-variant arm64-apple-macos10.15 
-isysroot 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
 -mlinker-version=400 -### 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
 2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
--check-prefix=ARM64_OLD 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
  : 'RUN: at line 14';   /b/s/w/ir/x/w/staging/llvm_build/bin/clang -target 
arm64-apple-macos10.15 -darwin-target-variant arm64-apple-ios13.1-macabi 
-isysroot 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk
 -mlinker-version=400 -### 
/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o
 2>&1| /b/s/w/ir/x/w/staging/llvm_build/bin/FileCheck 
--check-prefix=ARM64_OLD-INV 
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  
/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/darwin-ld-platform-version-target-version.c:29:15:
 error: ARM64_OLD: expected string not found in input
  // ARM64_OLD: "-maccatalyst_version_min" "14.0.0" "-macosx_version_min" 
"11.0.0"
^
  :1:1: note: scanning from here
  Fuchsia clang version 15.0.0 (https://llvm.googlesource.com/a/llvm-project 
cccef321096c20825fe8738045c1d91d3b9fd57d)
  ^
  :5:109: note: possible intended match here
   "/b/s/w/ir/x/w/staging/llvm_build/bin/ld64.lld" "-demangle" "-dynamic" 
"-arch" "arm64" "-platform_version" "mac catalyst" "14.0.0" "13.1" 
"-platform_version" "macos" "11.0.0" "10.15" "-syslibroot" 
"/b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/MacOSX10.15.versioned.sdk"
 "-o" "a.out" 
"/b/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver/Output/darwin-ld-platform-version-target-version.c.tmp.o"
 "-lSystem"

  ^
  
  Input file: 
  Check file: 

[PATCH] D118862: [clang][driver] add clang driver support for emitting macho files with two build version load commands

2022-02-14 Thread Alex Lorenz via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGd238acd1131e: [clang][driver] add clang driver support for 
emitting macho files with two… (authored by arphaman).

Changed prior to commit:
  https://reviews.llvm.org/D118862?vs=405495=408563#toc

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118862/new/

https://reviews.llvm.org/D118862

Files:
  clang/include/clang/Basic/DiagnosticDriverKinds.td
  clang/include/clang/Driver/Options.td
  clang/lib/Driver/ToolChains/Darwin.cpp
  clang/lib/Driver/ToolChains/Darwin.h
  clang/test/Driver/darwin-ld-platform-version-target-version.c
  clang/test/Driver/darwin-objc-runtime-maccatalyst-target-variant.m
  clang/test/Driver/darwin-target-variant-sdk-version.c
  clang/test/Driver/darwin-target-variant.c
  clang/test/Driver/darwin-zippered-target-version.c

Index: clang/test/Driver/darwin-zippered-target-version.c
===
--- /dev/null
+++ clang/test/Driver/darwin-zippered-target-version.c
@@ -0,0 +1,16 @@
+// RUN: %clang -target unknown-apple-macos10.15 -arch x86_64 -arch x86_64h -arch i386 \
+// RUN:   -darwin-target-variant x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64h-apple-ios13.1-macabi \
+// RUN:   %s -mlinker-version=400 -### 2>&1 | FileCheck %s
+
+// RUN: %clang -target unknown-apple-ios13.1-macabi -arch x86_64 -arch x86_64h \
+// RUN:   -darwin-target-variant x86_64-apple-macos10.15 \
+// RUN:   %s -mlinker-version=400 -### 2>&1 | FileCheck --check-prefix=INVERTED %s
+
+// CHECK: "-arch" "x86_64" "-macosx_version_min" "10.15.0" "-maccatalyst_version_min" "13.1"
+// CHECK: "-arch" "x86_64h" "-macosx_version_min" "10.15.0" "-maccatalyst_version_min" "13.1"
+// CHECK: "-arch" "i386" "-macosx_version_min" "10.15.0"
+// CHECK-NOT: maccatalyst_version_min
+
+// INVERTED: "-arch" "x86_64" "-maccatalyst_version_min" "13.1.0" "-macosx_version_min" "10.15"
+// INVERTED: "-arch" "x86_64h" "-maccatalyst_version_min" "13.1.0"
+// INVERTED-NOT: macosx_version_min
Index: clang/test/Driver/darwin-target-variant.c
===
--- /dev/null
+++ clang/test/Driver/darwin-target-variant.c
@@ -0,0 +1,32 @@
+// RUN: %clang -target unknown-apple-macos10.15 -arch x86_64 -arch x86_64h -arch i386 \
+// RUN:   -darwin-target-variant x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64h-apple-ios13.1-macabi \
+// RUN:   -c %s -### 2>&1 | FileCheck %s
+
+// RUN: %clang -target x86_64-apple-macos10.15 -darwin-target-variant i386-apple-ios13.1-macabi \
+// RUN:   -c %s -### 2>&1 | FileCheck --check-prefix=UNUSED-TV %s
+
+// RUN: %clang -target x86_64-apple-macos10.15 -darwin-target-variant x86_64-apple-ios13.1-macabi \
+// RUN:   -darwin-target-variant x86_64-apple-ios13.1-macabi -c %s -### 2>&1 | FileCheck --check-prefix=REDUNDANT-TV %s
+
+// RUN: %clang -target x86_64-apple-macos10.15 -darwin-target-variant x86_64-apple-ios13.1 \
+// RUN:   -c %s -### 2>&1 | FileCheck --check-prefix=INCORRECT-TV %s
+
+// RUN: %clang -target unknown-apple-ios13.1-macabi -arch x86_64 -arch x86_64h \
+// RUN:   -darwin-target-variant x86_64-apple-macos10.15 \
+// RUN:   -c %s -### 2>&1 | FileCheck --check-prefix=INVERTED %s
+
+// CHECK: "-triple" "x86_64-apple-macosx10.15.0"
+// CHECK-SAME: "-darwin-target-variant-triple" "x86_64-apple-ios13.1-macabi"
+// CHECK: "-triple" "x86_64h-apple-macosx10.15.0"
+// CHECK-SAME: "-darwin-target-variant-triple" "x86_64h-apple-ios13.1-macabi"
+// CHECK: "-triple" "i386-apple-macosx10.15.0"
+// CHECK-NOT: target-variant-triple
+
+// INVERTED: "-triple" "x86_64-apple-ios13.1.0-macabi"
+// INVERTED-SAME: "-darwin-target-variant-triple" "x86_64-apple-macos10.15"
+// INVERTED: "-triple" "x86_64h-apple-ios13.1.0-macabi"
+// INVERTED-NOT: target-variant-triple
+
+// UNUSED-TV: argument unused during compilation: '-darwin-target-variant i386-apple-ios13.1-macabi'
+// REDUNDANT-TV: argument unused during compilation: '-darwin-target-variant x86_64-apple-ios13.1-macabi'
+// INCORRECT-TV: unsupported '-darwin-target-variant' value 'x86_64-apple-ios13.1'; use 'ios-macabi' instead
Index: clang/test/Driver/darwin-target-variant-sdk-version.c
===
--- /dev/null
+++ clang/test/Driver/darwin-target-variant-sdk-version.c
@@ -0,0 +1,12 @@
+// RUN: %clang -target x86_64-apple-macosx10.15 -darwin-target-variant x86_64-apple-ios13.1-macabi -isysroot %S/Inputs/MacOSX10.15.versioned.sdk -c -### %s 2>&1 \
+// RUN:   | FileCheck %s
+// RUN: env SDKROOT=%S/Inputs/MacOSX10.15.versioned.sdk %clang -target x86_64-apple-macosx10.15 -darwin-target-variant x86_64-apple-ios13.1-macabi -c -### %s 2>&1 \
+// RUN:   | FileCheck %s
+// RUN: %clang -target x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64-apple-macosx10.15 -isysroot 

[PATCH] D118862: [clang][driver] add clang driver support for emitting macho files with two build version load commands

2022-02-08 Thread Steven Wu via Phabricator via cfe-commits
steven_wu accepted this revision.
steven_wu added a comment.
This revision is now accepted and ready to land.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118862/new/

https://reviews.llvm.org/D118862

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D118862: [clang][driver] add clang driver support for emitting macho files with two build version load commands

2022-02-02 Thread Alex Lorenz via Phabricator via cfe-commits
arphaman created this revision.
arphaman added reviewers: ravikandhadai, egorzhdan, dexonsmith, steven_wu.
Herald added subscribers: dang, ributzka.
arphaman requested review of this revision.
Herald added a project: clang.

This patch extends clang driver to pass the right flags to the clang frontend, 
and ld64, so that they can emit macho files with two build version load 
commands.

MachO uses two build version load commands to represent an object file / binary 
that is targeting both the macOS target,
and the Mac Catalyst target. At runtime, a dynamic library that supports both 
targets can be loaded from either a native
macOS or a Mac Catalyst app on a macOS system. We want to add support to this 
to upstream to LLVM to be able to build
compiler-rt for both targets, to finish the complete support for the Mac 
Catalyst platform, which is right now targetable
by upstream clang, but the compiler-rt bits aren't supported because of the 
lack of this multiple build version support.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D118862

Files:
  clang/include/clang/Basic/DiagnosticDriverKinds.td
  clang/include/clang/Driver/Options.td
  clang/lib/Driver/ToolChains/Darwin.cpp
  clang/lib/Driver/ToolChains/Darwin.h
  clang/test/Driver/darwin-ld-platform-version-target-version.c
  clang/test/Driver/darwin-objc-runtime-maccatalyst-target-variant.m
  clang/test/Driver/darwin-target-variant-sdk-version.c
  clang/test/Driver/darwin-target-variant.c
  clang/test/Driver/darwin-zippered-target-version.c

Index: clang/test/Driver/darwin-zippered-target-version.c
===
--- /dev/null
+++ clang/test/Driver/darwin-zippered-target-version.c
@@ -0,0 +1,16 @@
+// RUN: %clang -target unknown-apple-macos10.15 -arch x86_64 -arch x86_64h -arch i386 \
+// RUN:   -darwin-target-variant x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64h-apple-ios13.1-macabi \
+// RUN:   %s -mlinker-version=400 -### 2>&1 | FileCheck %s
+
+// RUN: %clang -target unknown-apple-ios13.1-macabi -arch x86_64 -arch x86_64h \
+// RUN:   -darwin-target-variant x86_64-apple-macos10.15 \
+// RUN:   %s -mlinker-version=400 -### 2>&1 | FileCheck --check-prefix=INVERTED %s
+
+// CHECK: "-arch" "x86_64" "-macosx_version_min" "10.15.0" "-maccatalyst_version_min" "13.1"
+// CHECK: "-arch" "x86_64h" "-macosx_version_min" "10.15.0" "-maccatalyst_version_min" "13.1"
+// CHECK: "-arch" "i386" "-macosx_version_min" "10.15.0"
+// CHECK-NOT: maccatalyst_version_min
+
+// INVERTED: "-arch" "x86_64" "-maccatalyst_version_min" "13.1.0" "-macosx_version_min" "10.15"
+// INVERTED: "-arch" "x86_64h" "-maccatalyst_version_min" "13.1.0"
+// INVERTED-NOT: macosx_version_min
Index: clang/test/Driver/darwin-target-variant.c
===
--- /dev/null
+++ clang/test/Driver/darwin-target-variant.c
@@ -0,0 +1,32 @@
+// RUN: %clang -target unknown-apple-macos10.15 -arch x86_64 -arch x86_64h -arch i386 \
+// RUN:   -darwin-target-variant x86_64-apple-ios13.1-macabi -darwin-target-variant x86_64h-apple-ios13.1-macabi \
+// RUN:   -c %s -### 2>&1 | FileCheck %s
+
+// RUN: %clang -target x86_64-apple-macos10.15 -darwin-target-variant i386-apple-ios13.1-macabi \
+// RUN:   -c %s -### 2>&1 | FileCheck --check-prefix=UNUSED-TV %s
+
+// RUN: %clang -target x86_64-apple-macos10.15 -darwin-target-variant x86_64-apple-ios13.1-macabi \
+// RUN:   -darwin-target-variant x86_64-apple-ios13.1-macabi -c %s -### 2>&1 | FileCheck --check-prefix=REDUNDANT-TV %s
+
+// RUN: %clang -target x86_64-apple-macos10.15 -darwin-target-variant x86_64-apple-ios13.1 \
+// RUN:   -c %s -### 2>&1 | FileCheck --check-prefix=INCORRECT-TV %s
+
+// RUN: %clang -target unknown-apple-ios13.1-macabi -arch x86_64 -arch x86_64h \
+// RUN:   -darwin-target-variant x86_64-apple-macos10.15 \
+// RUN:   -c %s -### 2>&1 | FileCheck --check-prefix=INVERTED %s
+
+// CHECK: "-triple" "x86_64-apple-macosx10.15.0"
+// CHECK-SAME: "-darwin-target-variant-triple" "x86_64-apple-ios13.1-macabi"
+// CHECK: "-triple" "x86_64h-apple-macosx10.15.0"
+// CHECK-SAME: "-darwin-target-variant-triple" "x86_64h-apple-ios13.1-macabi"
+// CHECK: "-triple" "i386-apple-macosx10.15.0"
+// CHECK-NOT: target-variant-triple
+
+// INVERTED: "-triple" "x86_64-apple-ios13.1.0-macabi"
+// INVERTED-SAME: "-darwin-target-variant-triple" "x86_64-apple-macos10.15"
+// INVERTED: "-triple" "x86_64h-apple-ios13.1.0-macabi"
+// INVERTED-NOT: target-variant-triple
+
+// UNUSED-TV: argument unused during compilation: '-darwin-target-variant i386-apple-ios13.1-macabi'
+// REDUNDANT-TV: argument unused during compilation: '-darwin-target-variant x86_64-apple-ios13.1-macabi'
+// INCORRECT-TV: unsupported '-darwin-target-variant' value 'x86_64-apple-ios13.1'; use 'ios-macabi' instead
Index: clang/test/Driver/darwin-target-variant-sdk-version.c
===
--- /dev/null
+++