forked from OSchip/llvm-project
[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 llvm-svn: 321099
This commit is contained in:
parent
5b106ef92e
commit
1acc63f7ce
|
@ -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,32 +1254,31 @@ struct DarwinPlatform {
|
|||
}
|
||||
static DarwinPlatform createFromArch(llvm::Triple::OSType OS,
|
||||
StringRef Value) {
|
||||
DarwinPlatformKind Platform;
|
||||
switch (OS) {
|
||||
case llvm::Triple::Darwin:
|
||||
case llvm::Triple::MacOSX:
|
||||
Platform = DarwinPlatformKind::MacOS;
|
||||
break;
|
||||
case llvm::Triple::IOS:
|
||||
Platform = DarwinPlatformKind::IPhoneOS;
|
||||
break;
|
||||
case llvm::Triple::TvOS:
|
||||
Platform = DarwinPlatformKind::TvOS;
|
||||
break;
|
||||
case llvm::Triple::WatchOS:
|
||||
Platform = DarwinPlatformKind::WatchOS;
|
||||
break;
|
||||
default:
|
||||
llvm_unreachable("Unable to infer Darwin variant");
|
||||
}
|
||||
return DarwinPlatform(InferredFromArch, Platform, Value);
|
||||
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)
|
||||
: Kind(Kind), Platform(Platform), OSVersion(Value), Argument(nullptr) {}
|
||||
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:
|
||||
return DarwinPlatformKind::MacOS;
|
||||
case llvm::Triple::IOS:
|
||||
return DarwinPlatformKind::IPhoneOS;
|
||||
case llvm::Triple::TvOS:
|
||||
return DarwinPlatformKind::TvOS;
|
||||
case llvm::Triple::WatchOS:
|
||||
return DarwinPlatformKind::WatchOS;
|
||||
default:
|
||||
llvm_unreachable("Unable to infer Darwin variant");
|
||||
}
|
||||
}
|
||||
|
||||
SourceKind Kind;
|
||||
DarwinPlatformKind Platform;
|
||||
|
@ -1449,20 +1452,15 @@ inferDeploymentTargetFromArch(DerivedArgList &Args, const Darwin &Toolchain,
|
|||
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(DerivedArgList &Args, const Darwin &Toolchain,
|
|||
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(DerivedArgList &Args) const {
|
|||
}
|
||||
}
|
||||
|
||||
// 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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue