r321099 - [driver][darwin] Take the OS version specified in "-target" as the target

Martin Böhme via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 21 07:45:19 PST 2017


This is causing problems in some internal builds that specify both
-mios-simulator-version-min=9.0 and --target=x86_64-apple-ios

My expectation would be for the code to take the minimum OS version number
from the -mios-simulator-version-min flag. In fact, however, the code seems
to be completely ignoring this flag.

Is my expectation wrong or does the code need to be modified to take this
situation into account?


On 19 December 2017 at 20:05, Alex Lorenz via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: arphaman
> Date: Tue Dec 19 11:05:04 2017
> New Revision: 321099
>
> URL: http://llvm.org/viewvc/llvm-project?rev=321099&view=rev
> Log:
> [driver][darwin] Take the OS version specified in "-target" as the target
> OS instead of inferring it from SDK / environment
>
> The OS version is specified in -target should be used instead of the one
> in an
> environment variable / SDK name.
>
> rdar://35813850
>
> Differential Revision: https://reviews.llvm.org/D40998
>
> Modified:
>     cfe/trunk/lib/Driver/ToolChains/Darwin.cpp
>     cfe/trunk/test/Driver/darwin-version.c
>     cfe/trunk/test/Driver/objc-weak.m
>     cfe/trunk/test/Driver/pic.c
>     cfe/trunk/test/Driver/unavailable_aligned_allocation.cpp
>
> Modified: cfe/trunk/lib/Driver/ToolChains/Darwin.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> ToolChains/Darwin.cpp?rev=321099&r1=321098&r2=321099&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/ToolChains/Darwin.cpp (original)
> +++ cfe/trunk/lib/Driver/ToolChains/Darwin.cpp Tue Dec 19 11:05:04 2017
> @@ -1233,6 +1233,10 @@ struct DarwinPlatform {
>      llvm_unreachable("Unsupported Darwin Source Kind");
>    }
>
> +  static DarwinPlatform createFromTarget(llvm::Triple::OSType OS,
> +                                         StringRef OSVersion, Arg *A) {
> +    return DarwinPlatform(TargetArg, getPlatformFromOS(OS), OSVersion, A);
> +  }
>    static DarwinPlatform createOSVersionArg(DarwinPlatformKind Platform,
>                                             Arg *A) {
>      return DarwinPlatform(OSVersionArg, Platform, A);
> @@ -1250,33 +1254,32 @@ struct DarwinPlatform {
>    }
>    static DarwinPlatform createFromArch(llvm::Triple::OSType OS,
>                                         StringRef Value) {
> -    DarwinPlatformKind Platform;
> +    return DarwinPlatform(InferredFromArch, getPlatformFromOS(OS),
> Value);
> +  }
> +
> +private:
> +  DarwinPlatform(SourceKind Kind, DarwinPlatformKind Platform, Arg
> *Argument)
> +      : Kind(Kind), Platform(Platform), Argument(Argument) {}
> +  DarwinPlatform(SourceKind Kind, DarwinPlatformKind Platform, StringRef
> Value,
> +                 Arg *Argument = nullptr)
> +      : Kind(Kind), Platform(Platform), OSVersion(Value),
> Argument(Argument) {}
> +
> +  static DarwinPlatformKind getPlatformFromOS(llvm::Triple::OSType OS) {
>      switch (OS) {
>      case llvm::Triple::Darwin:
>      case llvm::Triple::MacOSX:
> -      Platform = DarwinPlatformKind::MacOS;
> -      break;
> +      return DarwinPlatformKind::MacOS;
>      case llvm::Triple::IOS:
> -      Platform = DarwinPlatformKind::IPhoneOS;
> -      break;
> +      return DarwinPlatformKind::IPhoneOS;
>      case llvm::Triple::TvOS:
> -      Platform = DarwinPlatformKind::TvOS;
> -      break;
> +      return DarwinPlatformKind::TvOS;
>      case llvm::Triple::WatchOS:
> -      Platform = DarwinPlatformKind::WatchOS;
> -      break;
> +      return DarwinPlatformKind::WatchOS;
>      default:
>        llvm_unreachable("Unable to infer Darwin variant");
>      }
> -    return DarwinPlatform(InferredFromArch, Platform, Value);
>    }
>
> -private:
> -  DarwinPlatform(SourceKind Kind, DarwinPlatformKind Platform, Arg
> *Argument)
> -      : Kind(Kind), Platform(Platform), Argument(Argument) {}
> -  DarwinPlatform(SourceKind Kind, DarwinPlatformKind Platform, StringRef
> Value)
> -      : Kind(Kind), Platform(Platform), OSVersion(Value),
> Argument(nullptr) {}
> -
>    SourceKind Kind;
>    DarwinPlatformKind Platform;
>    std::string OSVersion;
> @@ -1449,20 +1452,15 @@ inferDeploymentTargetFromArch(DerivedArg
>                                const Driver &TheDriver) {
>    llvm::Triple::OSType OSTy = llvm::Triple::UnknownOS;
>
> -  // Set the OSTy based on -target if -arch isn't present.
> -  if (Args.hasArg(options::OPT_target) && !Args.hasArg(options::OPT_arch))
> {
> -    OSTy = Triple.getOS();
> -  } else {
> -    StringRef MachOArchName = Toolchain.getMachOArchName(Args);
> -    if (MachOArchName == "armv7" || MachOArchName == "armv7s" ||
> -        MachOArchName == "arm64")
> -      OSTy = llvm::Triple::IOS;
> -    else if (MachOArchName == "armv7k")
> -      OSTy = llvm::Triple::WatchOS;
> -    else if (MachOArchName != "armv6m" && MachOArchName != "armv7m" &&
> -             MachOArchName != "armv7em")
> -      OSTy = llvm::Triple::MacOSX;
> -  }
> +  StringRef MachOArchName = Toolchain.getMachOArchName(Args);
> +  if (MachOArchName == "armv7" || MachOArchName == "armv7s" ||
> +      MachOArchName == "arm64")
> +    OSTy = llvm::Triple::IOS;
> +  else if (MachOArchName == "armv7k")
> +    OSTy = llvm::Triple::WatchOS;
> +  else if (MachOArchName != "armv6m" && MachOArchName != "armv7m" &&
> +           MachOArchName != "armv7em")
> +    OSTy = llvm::Triple::MacOSX;
>
>    if (OSTy == llvm::Triple::UnknownOS)
>      return None;
> @@ -1470,6 +1468,19 @@ inferDeploymentTargetFromArch(DerivedArg
>                                          getOSVersion(OSTy, Triple,
> TheDriver));
>  }
>
> +/// Returns the deployment target that's specified using the -target
> option.
> +Optional<DarwinPlatform> getDeploymentTargetFromTargetArg(
> +    DerivedArgList &Args, const llvm::Triple &Triple, const Driver
> &TheDriver) {
> +  if (!Args.hasArg(options::OPT_target))
> +    return None;
> +  if (Triple.getOS() == llvm::Triple::Darwin ||
> +      Triple.getOS() == llvm::Triple::UnknownOS)
> +    return None;
> +  std::string OSVersion = getOSVersion(Triple.getOS(), Triple, TheDriver);
> +  return DarwinPlatform::createFromTarget(Triple.getOS(), OSVersion,
> +                                          Args.getLastArg(options::OPT_
> target));
> +}
> +
>  } // namespace
>
>  void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
> @@ -1494,24 +1505,35 @@ void Darwin::AddDeploymentTarget(Derived
>      }
>    }
>
> -  // The OS target can be specified using the -m<os>version-min argument.
> +  // The OS and the version can be specified using the -target argument.
>    Optional<DarwinPlatform> OSTarget =
> -      getDeploymentTargetFromOSVersionArg(Args, getDriver());
> -  // If no deployment target was specified on the command line, check for
> -  // environment defines.
> -  if (!OSTarget)
> -    OSTarget =
> -        getDeploymentTargetFromEnvironmentVariables(getDriver(),
> getTriple());
> -  // If there is no command-line argument to specify the Target version
> and
> -  // no environment variable defined, see if we can set the default based
> -  // on -isysroot.
> -  if (!OSTarget)
> -    OSTarget = inferDeploymentTargetFromSDK(Args);
> -  // If no OS targets have been specified, try to guess platform from
> -target
> -  // or arch name and compute the version from the triple.
> -  if (!OSTarget)
> -    OSTarget =
> -        inferDeploymentTargetFromArch(Args, *this, getTriple(),
> getDriver());
> +      getDeploymentTargetFromTargetArg(Args, getTriple(), getDriver());
> +  if (OSTarget) {
> +    // Warn about superfluous -m<os>-version-min arg.
> +    Optional<DarwinPlatform> OSVersionArgTarget =
> +        getDeploymentTargetFromOSVersionArg(Args, getDriver());
> +    if (OSVersionArgTarget)
> +      getDriver().Diag(clang::diag::warn_drv_unused_argument)
> +          << OSVersionArgTarget->getAsString(Args, Opts);
> +  } else {
> +    // The OS target can be specified using the -m<os>version-min
> argument.
> +    OSTarget = getDeploymentTargetFromOSVersionArg(Args, getDriver());
> +    // If no deployment target was specified on the command line, check
> for
> +    // environment defines.
> +    if (!OSTarget)
> +      OSTarget =
> +          getDeploymentTargetFromEnvironmentVariables(getDriver(),
> getTriple());
> +    // If there is no command-line argument to specify the Target version
> and
> +    // no environment variable defined, see if we can set the default
> based
> +    // on -isysroot.
> +    if (!OSTarget)
> +      OSTarget = inferDeploymentTargetFromSDK(Args);
> +    // If no OS targets have been specified, try to guess platform from
> -target
> +    // or arch name and compute the version from the triple.
> +    if (!OSTarget)
> +      OSTarget =
> +          inferDeploymentTargetFromArch(Args, *this, getTriple(),
> getDriver());
> +  }
>
>    assert(OSTarget && "Unable to infer Darwin variant");
>    OSTarget->addOSVersionMinArgument(Args, Opts);
>
> Modified: cfe/trunk/test/Driver/darwin-version.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> darwin-version.c?rev=321099&r1=321098&r2=321099&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/darwin-version.c (original)
> +++ cfe/trunk/test/Driver/darwin-version.c Tue Dec 19 11:05:04 2017
> @@ -12,11 +12,15 @@
>  // CHECK-VERSION-IOS3: "armv6k-apple-ios3.0.0"
>
>  // RUN: env IPHONEOS_DEPLOYMENT_TARGET=11.0 \
> -// RUN:   %clang -target armv7-apple-ios9.0 -c -### %s 2> %t.err
> +// RUN:   %clang -target armv7-apple-darwin -c -### %s 2> %t.err
>  // RUN:   FileCheck --input-file=%t.err --check-prefix=CHECK-VERSION-IOS4
> %s
>  // CHECK-VERSION-IOS4: invalid iOS deployment version
> 'IPHONEOS_DEPLOYMENT_TARGET=11.0'
>
> -// RUN: %clang -target armv7-apple-ios9.0 -miphoneos-version-min=11.0 -c
> -### %s 2> %t.err
> +// RUN: %clang -target armv7-apple-ios11.0 -c -### %s 2> %t.err
> +// RUN: FileCheck --input-file=%t.err --check-prefix=CHECK-VERSION-IOS41
> %s
> +// CHECK-VERSION-IOS41: invalid iOS deployment version
> '--target=armv7-apple-ios11.0'
> +
> +// RUN: %clang -target armv7-apple-darwin -miphoneos-version-min=11.0 -c
> -### %s 2> %t.err
>  // RUN: FileCheck --input-file=%t.err --check-prefix=CHECK-VERSION-IOS5
> %s
>  // CHECK-VERSION-IOS5: invalid iOS deployment version
> '-miphoneos-version-min=11.0'
>
> @@ -25,13 +29,14 @@
>  // CHECK-VERSION-IOS6: invalid iOS deployment version
> '-mios-simulator-version-min=11.0'
>
>  // RUN: %clang -target armv7-apple-ios11.1 -c -### %s 2>&1 | \
> -// RUN: FileCheck --check-prefix=CHECK-VERSION-IOS7 %s
> -// RUN: %clang -target armv7-apple-ios9 -Wno-missing-sysroot -isysroot
> SDKs/iPhoneOS11.0.sdk -c -### %s 2>&1 | \
> +// RUN: FileCheck --check-prefix=CHECK-VERSION-IOS71 %s
> +// CHECK-VERSION-IOS71: invalid iOS deployment version
> +// RUN: %clang -target armv7-apple-darwin -Wno-missing-sysroot -isysroot
> SDKs/iPhoneOS11.0.sdk -c -### %s 2>&1 | \
>  // RUN: FileCheck --check-prefix=CHECK-VERSION-IOS7 %s
>  // CHECK-VERSION-IOS7: thumbv7-apple-ios10.99.99
>
>  // RUN: env IPHONEOS_DEPLOYMENT_TARGET=11.0 \
> -// RUN:   %clang -target arm64-apple-ios11.0 -c -### %s 2>&1 | \
> +// RUN:   %clang -target arm64-apple-darwin -c -### %s 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-IOS8 %s
>  // CHECK-VERSION-IOS8: arm64-apple-ios11.0.0
>
> @@ -49,7 +54,7 @@
>
>  // RUN: %clang -target armv7-apple-ios9.0 -miphoneos-version-min=11.0 -c
> -Wno-invalid-ios-deployment-target -### %s 2>&1 | \
>  // RUN: FileCheck --check-prefix=CHECK-VERSION-IOS12 %s
> -// CHECK-VERSION-IOS12: thumbv7-apple-ios11.0.0
> +// CHECK-VERSION-IOS12: thumbv7-apple-ios9.0.0
>
>  // RUN: %clang -target i686-apple-darwin8 -c %s -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-OSX4 %s
> @@ -68,14 +73,14 @@
>  // CHECK-VERSION-OSX6: "i386-apple-macosx10.6.0"
>  // RUN: %clang -target x86_64-apple-darwin14 -c %s -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-OSX10 %s
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.10 -c
> %s -### 2>&1 | \
> +// RUN: %clang -target x86_64-apple-darwin -mmacosx-version-min=10.10 -c
> %s -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-OSX10 %s
> -// RUN: %clang -target x86_64-apple-macosx -mmacos-version-min=10.10 -c
> %s -### 2>&1 | \
> +// RUN: %clang -target x86_64-apple-darwin -mmacos-version-min=10.10 -c
> %s -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-OSX10 %s
>  // CHECK-VERSION-OSX10: "x86_64-apple-macosx10.10.0"
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min= -c %s
> -### 2>&1 | \
> +// RUN: %clang -target x86_64-apple-darwin -mmacosx-version-min= -c %s
> -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-MISSING %s
> -// RUN: %clang -target x86_64-apple-macosx -mmacos-version-min= -c %s
> -### 2>&1 | \
> +// RUN: %clang -target x86_64-apple-darwin -mmacos-version-min= -c %s
> -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-MISSING %s
>  // CHECK-VERSION-MISSING: invalid version number
>  // RUN: %clang -target armv7k-apple-darwin -mwatchos-version-min=2.0 -c
> %s -### 2>&1 | \
> @@ -144,3 +149,116 @@
>  // RUN:   %clang -target x86_64-apple-darwin -c %s -### 2>&1 | \
>  // RUN:   FileCheck --check-prefix=CHECK-VERSION-INVALID-ENV %s
>  // CHECK-VERSION-INVALID-ENV: invalid version number in
> 'MACOSX_DEPLOYMENT_TARGET=1000.1000'
> +
> +
> +
> +// Target can specify the OS version:
> +
> +// RUN: %clang -target x86_64-apple-macos10.11.2 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TMAC2 %s
> +// CHECK-VERSION-TMAC2: "x86_64-apple-macosx10.11.2"
> +
> +// RUN: %clang -target arm64-apple-ios11.1 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIOS1 %s
> +// CHECK-VERSION-TIOS1: "arm64-apple-ios11.1.0"
> +
> +// RUN: %clang -target arm64-apple-tvos10.3 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TTVOS1 %s
> +// CHECK-VERSION-TTVOS1: "arm64-apple-tvos10.3.0"
> +
> +// RUN: %clang -target armv7k-apple-watchos4.1 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TWATCHOS1 %s
> +// CHECK-VERSION-TWATCHOS1: "thumbv7k-apple-watchos4.1.0"
> +
> +// "darwin" always back to the -m<os>version-min and environment:
> +
> +// RUN: %clang -target x86_64-apple-darwin14 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TDARWIN-FALL1 %s
> +// CHECK-VERSION-TDARWIN-FALL1: "x86_64-apple-macosx10.10.0"
> +
> +// RUN: %clang -target x86_64-apple-darwin14 -miphoneos-version-min=10.1
> -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TDARWIN-FALL2 %s
> +// CHECK-VERSION-TDARWIN-FALL2: "x86_64-apple-ios10.1.0-simulator"
> +
> +// RUN: env IPHONEOS_DEPLOYMENT_TARGET=9.1 \
> +// RUN:   %clang -target arm64-apple-darwin14 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TDARWIN-FALL3 %s
> +// CHECK-VERSION-TDARWIN-FALL3: "arm64-apple-ios9.1.0"
> +
> +// RUN: %clang -target arm64-apple-darwin14 -isysroot
> SDKs/iPhoneOS11.0.sdk -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TDARWIN-FALL4 %s
> +// CHECK-VERSION-TDARWIN-FALL4: "arm64-apple-ios11.0.0"
> +
> +// RUN: %clang -target unknown-apple-darwin12  -arch armv7  -c %s -###
> 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TDARWIN-FALL5 %s
> +// CHECK-VERSION-TDARWIN-FALL5: "thumbv7-apple-ios5.0.0"
> +
> +// Warn about -m<os>-version-min when it's used with target:
> +
> +// RUN: %clang -target x86_64-apple-macos10.11.2 -mmacos-version-min=10.6
> -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TNO-OSV1 %s
> +// CHECK-VERSION-TNO-OSV1: argument unused during compilation:
> '-mmacosx-version-min=10.6'
> +
> +// RUN: %clang -target x86_64-apple-macos -miphoneos-version-min=9.1 -c
> %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TNO-OSV2 %s
> +// CHECK-VERSION-TNO-OSV2: argument unused during compilation:
> '-miphoneos-version-min=9.1'
> +
> +// Target with OS version is not overriden by -m<os>-version-min
> variables:
> +
> +// RUN: %clang -target x86_64-apple-macos10.11.2 -mmacos-version-min=10.6
> -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIGNORE-OSV1 %s
> +// CHECK-VERSION-TIGNORE-OSV1: "x86_64-apple-macosx10.11.2"
> +
> +// RUN: %clang -target arm64-apple-ios11.0 -mios-version-min=9.0 -c %s
> -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIGNORE-OSV2 %s
> +// CHECK-VERSION-TIGNORE-OSV2: "arm64-apple-ios11.0.0"
> +
> +// RUN: %clang -target arm64-apple-tvos11.0 -mtvos-version-min=9.0 -c %s
> -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIGNORE-OSV3 %s
> +// CHECK-VERSION-TIGNORE-OSV3: "arm64-apple-tvos11.0.0"
> +
> +// RUN: %clang -target armv7k-apple-watchos3 -mwatchos-version-min=4 -c
> %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIGNORE-OSV4 %s
> +// CHECK-VERSION-TIGNORE-OSV4: "thumbv7k-apple-watchos3.0.0"
> +
> +// Target with OS version is not overriden by environment variables:
> +
> +// RUN: env MACOSX_DEPLOYMENT_TARGET=10.1 \
> +// RUN:   %clang -target i386-apple-macos10.5 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TMACOS-CMD %s
> +// CHECK-VERSION-TMACOS-CMD: "i386-apple-macosx10.5.0"
> +
> +// RUN: env IPHONEOS_DEPLOYMENT_TARGET=10.1 \
> +// RUN:   %clang -target arm64-apple-ios11 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIOS-CMD %s
> +// CHECK-VERSION-TIOS-CMD: "arm64-apple-ios11.0.0"
> +
> +// RUN: env TVOS_DEPLOYMENT_TARGET=8.3.1 \
> +// RUN:   %clang -target arm64-apple-tvos9 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TTVOS-CMD %s
> +// CHECK-VERSION-TTVOS-CMD: "arm64-apple-tvos9.0.0"
> +
> +// RUN: env WATCHOS_DEPLOYMENT_TARGET=2 \
> +// RUN:   %clang -target armv7k-apple-watchos3 -c %s -### 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TWATCHOS-CMD %s
> +// CHECK-VERSION-TWATCHOS-CMD: "thumbv7k-apple-watchos3.0.0"
> +
> +// Target with OS version is not overriden by the SDK:
> +
> +// RUN: %clang -target armv7-apple-ios9 -Wno-missing-sysroot -isysroot
> SDKs/iPhoneOS11.0.sdk -c -### %s 2>&1 | \
> +// RUN: FileCheck --check-prefix=CHECK-VERSION-TIOS-SDK %s
> +// CHECK-VERSION-TIOS-SDK: thumbv7-apple-ios9
> +
> +// RUN: %clang -target armv7k-apple-watchos4 -Wno-missing-sysroot
> -isysroot SDKs/WatchOS3.0.sdk -c -### %s 2>&1 | \
> +// RUN: FileCheck --check-prefix=CHECK-VERSION-TWATCHOS-SDK %s
> +// CHECK-VERSION-TWATCHOS-SDK: thumbv7k-apple-watchos4
> +
> +// RUN: %clang -target armv7-apple-tvos9 -Wno-missing-sysroot -isysroot
> SDKs/AppleTVOS11.0.sdk -c -### %s 2>&1 | \
> +// RUN: FileCheck --check-prefix=CHECK-VERSION-TTVOS-SDK %s
> +// CHECK-VERSION-TTVOS-SDK: thumbv7-apple-tvos9
> +
> +// Target with OS version is not overriden by arch:
> +
> +// RUN: %clang -target uknown-apple-macos10.11.2 -arch=armv7k -c %s -###
> 2>&1 | \
> +// RUN:   FileCheck --check-prefix=CHECK-VERSION-TIGNORE-ARCH1 %s
> +// CHECK-VERSION-TIGNORE-ARCH1: "unknown-apple-macosx10.11.2"
>
> Modified: cfe/trunk/test/Driver/objc-weak.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> objc-weak.m?rev=321099&r1=321098&r2=321099&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/objc-weak.m (original)
> +++ cfe/trunk/test/Driver/objc-weak.m Tue Dec 19 11:05:04 2017
> @@ -1,27 +1,27 @@
>  // Check miscellaneous Objective-C options.
>
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fobjc-arc -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fno-objc-weak -fobjc-weak -fobjc-arc  2>&1 | FileCheck %s
> --check-prefix ARC-WEAK
> +// RUN: %clang -target x86_64-apple-macosx10.7 -S -### %s -fobjc-arc
> -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK
> +// RUN: %clang -target x86_64-apple-macosx10.7 -S -### %s -fno-objc-weak
> -fobjc-weak -fobjc-arc  2>&1 | FileCheck %s --check-prefix ARC-WEAK
>  // ARC-WEAK: -fobjc-arc
>  // ARC-WEAK: -fobjc-weak
>
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fobjc-arc -fno-objc-weak 2>&1 | FileCheck %s --check-prefix
> ARC-NO-WEAK
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fobjc-weak -fno-objc-weak -fobjc-arc  2>&1 | FileCheck %s
> --check-prefix ARC-NO-WEAK
> +// RUN: %clang -target x86_64-apple-macos10.7 -S -### %s -fobjc-arc
> -fno-objc-weak 2>&1 | FileCheck %s --check-prefix ARC-NO-WEAK
> +// RUN: %clang -target x86_64-apple-macos10.7 -S -### %s -fobjc-weak
> -fno-objc-weak -fobjc-arc  2>&1 | FileCheck %s --check-prefix ARC-NO-WEAK
>  // ARC-NO-WEAK: -fobjc-arc
>  // ARC-NO-WEAK: -fno-objc-weak
>
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.5 -S
> -### %s -fobjc-arc -fobjc-weak 2>&1 | FileCheck %s --check-prefix
> ARC-WEAK-NOTSUPPORTED
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.5 -S
> -### %s -fno-objc-weak -fobjc-weak -fobjc-arc  2>&1 | FileCheck %s
> --check-prefix ARC-WEAK-NOTSUPPORTED
> +// RUN: %clang -target x86_64-apple-macosx10.5 -S -### %s -fobjc-arc
> -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK-NOTSUPPORTED
> +// RUN: %clang -target x86_64-apple-macosx10.5 -S -### %s -fno-objc-weak
> -fobjc-weak -fobjc-arc  2>&1 | FileCheck %s --check-prefix
> ARC-WEAK-NOTSUPPORTED
>  // ARC-WEAK-NOTSUPPORTED: error: -fobjc-weak is not supported on the
> current deployment target
>
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fobjc-weak 2>&1 | FileCheck %s --check-prefix MRC-WEAK
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fno-objc-weak -fobjc-weak 2>&1 | FileCheck %s --check-prefix
> MRC-WEAK
> +// RUN: %clang -target x86_64-apple-macos10.7 -S -### %s -fobjc-weak 2>&1
> | FileCheck %s --check-prefix MRC-WEAK
> +// RUN: %clang -target x86_64-apple-macos10.7 -S -### %s -fno-objc-weak
> -fobjc-weak 2>&1 | FileCheck %s --check-prefix MRC-WEAK
>  // MRC-WEAK: -fobjc-weak
>
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fno-objc-weak 2>&1 | FileCheck %s --check-prefix MRC-NO-WEAK
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.7 -S
> -### %s -fobjc-weak -fno-objc-weak 2>&1 | FileCheck %s --check-prefix
> MRC-NO-WEAK
> +// RUN: %clang -target x86_64-apple-macosx10.7 -S -### %s -fno-objc-weak
> 2>&1 | FileCheck %s --check-prefix MRC-NO-WEAK
> +// RUN: %clang -target x86_64-apple-macosx10.7 -S -### %s -fobjc-weak
> -fno-objc-weak 2>&1 | FileCheck %s --check-prefix MRC-NO-WEAK
>  // MRC-NO-WEAK: -fno-objc-weak
>
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.5 -S
> -### %s -fobjc-weak 2>&1 | FileCheck %s --check-prefix MRC-WEAK-NOTSUPPORTED
> -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.5 -S
> -### %s -fno-objc-weak -fobjc-weak 2>&1 | FileCheck %s --check-prefix
> MRC-WEAK-NOTSUPPORTED
> +// RUN: %clang -target x86_64-apple-macosx10.5 -S -### %s -fobjc-weak
> 2>&1 | FileCheck %s --check-prefix MRC-WEAK-NOTSUPPORTED
> +// RUN: %clang -target x86_64-apple-macosx10.5 -S -### %s -fno-objc-weak
> -fobjc-weak 2>&1 | FileCheck %s --check-prefix MRC-WEAK-NOTSUPPORTED
>  // MRC-WEAK-NOTSUPPORTED: error: -fobjc-weak is not supported on the
> current deployment target
>
> Modified: cfe/trunk/test/Driver/pic.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> pic.c?rev=321099&r1=321098&r2=321099&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/pic.c (original)
> +++ cfe/trunk/test/Driver/pic.c Tue Dec 19 11:05:04 2017
> @@ -221,19 +221,19 @@
>  //
>  // Checks for ARM+Apple+IOS including -fapple-kext, -mkernel, and iphoneos
>  // version boundaries.
> -// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext
> -miphoneos-version-min=6.0.0 -### 2>&1 \
> +// RUN: %clang -c %s -target armv7-apple-ios6 -fapple-kext -### 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
> -// RUN: %clang -c %s -target armv7-apple-ios -mkernel
> -miphoneos-version-min=6.0.0 -### 2>&1 \
> +// RUN: %clang -c %s -target armv7-apple-ios6 -mkernel -### 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
> -// RUN: %clang -c %s -target arm64-apple-ios -mkernel
> -miphoneos-version-min=7.0.0 -### 2>&1 \
> +// RUN: %clang -c %s -target arm64-apple-ios7 -mkernel -### 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
> -// RUN: %clang -x assembler -c %s -target arm64-apple-ios -mkernel
> -miphoneos-version-min=7.0.0 -no-integrated-as -### 2>&1 \
> +// RUN: %clang -x assembler -c %s -target arm64-apple-ios7 -mkernel
> -no-integrated-as -### 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-NO-STATIC
> -// RUN: %clang -c %s -target armv7k-apple-watchos -fapple-kext
> -mwatchos-version-min=1.0.0 -### 2>&1 \
> +// RUN: %clang -c %s -target armv7k-apple-watchos1 -fapple-kext -### 2>&1
> \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
> -// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext
> -miphoneos-version-min=5.0.0 -### 2>&1 \
> +// RUN: %clang -c %s -target armv7-apple-ios5 -fapple-kext -### 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
> -// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext
> -miphoneos-version-min=6.0.0 -static -### 2>&1 \
> +// RUN: %clang -c %s -target armv7-apple-ios6 -fapple-kext -static -###
> 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
>  // RUN: %clang -c %s -target armv7-apple-unknown-macho -static -### 2>&1 \
>  // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
>
> Modified: cfe/trunk/test/Driver/unavailable_aligned_allocation.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> unavailable_aligned_allocation.cpp?rev=321099&r1=
> 321098&r2=321099&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/unavailable_aligned_allocation.cpp (original)
> +++ cfe/trunk/test/Driver/unavailable_aligned_allocation.cpp Tue Dec 19
> 11:05:04 2017
> @@ -10,15 +10,15 @@
>  // RUN: %clang -target thumbv7-apple-watchos3 -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=UNAVAILABLE
>  //
> -// RUN: %clang -target x86_64-apple-macosx10.13
> -mios-simulator-version-min=10 \
> +// RUN: %clang -target x86_64-apple-darwin -mios-simulator-version-min=10
> \
>  // RUN:  -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=UNAVAILABLE
>  //
> -// RUN: %clang -target x86_64-apple-macosx10.13
> -mtvos-simulator-version-min=10 \
> +// RUN: %clang -target x86_64-apple-darwin -mtvos-simulator-version-min=10
> \
>  // RUN: -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=UNAVAILABLE
>  //
> -// RUN: %clang -target x86_64-apple-macosx10.13
> -mwatchos-simulator-version-min=3 \
> +// RUN: %clang -target x86_64-apple-darwin -mwatchos-simulator-version-min=3
> \
>  // RUN: -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=UNAVAILABLE
>  //
> @@ -39,15 +39,15 @@
>  // RUN: %clang -target x86_64-unknown-linux-gnu -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=AVAILABLE
>  //
> -// RUN: %clang -target x86_64-apple-macosx10.12
> -mios-simulator-version-min=11 \
> +// RUN: %clang -target x86_64-apple-darwin -mios-simulator-version-min=11
> \
>  // RUN:  -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=AVAILABLE
>  //
> -// RUN: %clang -target x86_64-apple-macosx10.12
> -mtvos-simulator-version-min=11 \
> +// RUN: %clang -target x86_64-apple-darwin -mtvos-simulator-version-min=11
> \
>  // RUN: -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=AVAILABLE
>  //
> -// RUN: %clang -target x86_64-apple-macosx10.12
> -mwatchos-simulator-version-min=4 \
> +// RUN: %clang -target x86_64-apple-darwin -mwatchos-simulator-version-min=4
> \
>  // RUN: -c -### %s 2>&1 \
>  // RUN:   | FileCheck %s -check-prefix=AVAILABLE
>  //
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>



-- 

Martin Böhme

Software Engineer

mboehme at google.com

Google Germany GmbH
Erika-Mann-Straße 33
80363 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado

Registergericht und -nummer: Hamburg, HRB 86891

Sitz der Gesellschaft: Hamburg

Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat sind,
leiten Sie diese bitte nicht weiter, informieren Sie den Absender und
löschen Sie die E-Mail und alle Anhänge. Vielen Dank.



This e-mail is confidential. If you are not the right addressee please do
not forward it, please inform the sender, and please erase this e-mail
including any attachments. Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171221/19a104cd/attachment-0001.html>


More information about the cfe-commits mailing list