Index: lib/Driver/ToolChains/Darwin.cpp =================================================================== --- lib/Driver/ToolChains/Darwin.cpp +++ lib/Driver/ToolChains/Darwin.cpp @@ -1233,6 +1233,10 @@ 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 @@ } 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 @@ 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 @@ getOSVersion(OSTy, Triple, TheDriver)); } +/// Returns the deployment target that's specified using the -target option. +Optional 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 @@ } } - // The OS target can be specified using the -mversion-min argument. + // The OS and the version can be specified using the -target argument. Optional 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-version-min arg. + Optional 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 -mversion-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); Index: test/Driver/darwin-version.c =================================================================== --- test/Driver/darwin-version.c +++ test/Driver/darwin-version.c @@ -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 -mversion-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-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-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" Index: test/Driver/objc-weak.m =================================================================== --- test/Driver/objc-weak.m +++ test/Driver/objc-weak.m @@ -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 Index: test/Driver/pic.c =================================================================== --- test/Driver/pic.c +++ test/Driver/pic.c @@ -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 Index: test/Driver/unavailable_aligned_allocation.cpp =================================================================== --- test/Driver/unavailable_aligned_allocation.cpp +++ test/Driver/unavailable_aligned_allocation.cpp @@ -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 //