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

James Y Knight via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 21 08:00:07 PST 2017


I think if a version number isn't explicitly specified in the -target
value, the value from -m<platform>-version-min ought to still be used, as
it was before.

Currently, clang will ignore the -m<platform>-version-min version number if
the target has a particular OS specified, even if it has no version number
as part of it.

(We should be able to workaround this change backwards-compatibly by
specifying in both the -target argument and in the -m<platform>-version-min
arguments, but I do think the behavior should be fixed.)

On Thu, Dec 21, 2017 at 10:45 AM, Martin Böhme <mboehme at google.com> wrote:

> 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/Too
>> lChains/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_t
>> arget));
>> +}
>> +
>>  } // 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/da
>> rwin-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/ob
>> jc-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/pi
>> c.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/un
>> available_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
> <https://maps.google.com/?q=Erika-Mann-Stra%C3%9Fe+33&entry=gmail&source=g>
> 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/8484b170/attachment-0001.html>


More information about the cfe-commits mailing list