Skip to content

Commit 22cdddd

Browse files
authored
Merge pull request #30771 from DougGregor/stop-inferring-simulator
[Darwin] Further restrict inference of the simulator environment
2 parents 45e833f + 1a860e7 commit 22cdddd

18 files changed

+119
-87
lines changed

include/swift/AST/DiagnosticsFrontend.def

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ ERROR(error_unsupported_target_arch, none,
3939
ERROR(error_unsupported_opt_for_target, none,
4040
"unsupported option '%0' for target '%1'", (StringRef, StringRef))
4141

42+
WARNING(warning_inferred_simulator_target,none,
43+
"inferring simulator environment for target '%0'; "
44+
"use '-target %1' instead", (StringRef, StringRef))
45+
4246
ERROR(error_argument_not_allowed_with, none,
4347
"argument '%0' is not allowed with '%1'", (StringRef, StringRef))
4448

include/swift/Basic/Platform.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ namespace swift {
4343
/// Returns true if the given triple represents watchOS running in a simulator.
4444
bool tripleIsWatchSimulator(const llvm::Triple &triple);
4545

46-
/// Return true if the given triple represents any simulator.
47-
bool tripleIsAnySimulator(const llvm::Triple &triple);
48-
4946
/// Returns true if the given triple represents a macCatalyst environment.
5047
bool tripleIsMacCatalystEnvironment(const llvm::Triple &triple);
5148

49+
/// Determine whether the triple infers the "simulator" environment.
50+
bool tripleInfersSimulatorEnvironment(const llvm::Triple &triple);
51+
5252
/// Returns true if the given -target triple and -target-variant triple
5353
/// can be zippered.
5454
bool triplesAreValidForZippering(const llvm::Triple &target,

lib/Basic/LangOptions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ std::pair<bool, bool> LangOptions::setTarget(llvm::Triple triple) {
361361
// Set the "targetEnvironment" platform condition if targeting a simulator
362362
// environment. Otherwise _no_ value is present for targetEnvironment; it's
363363
// an optional disambiguating refinement of the triple.
364-
if (swift::tripleIsAnySimulator(Target))
364+
if (Target.isSimulatorEnvironment())
365365
addPlatformConditionValue(PlatformConditionKind::TargetEnvironment,
366366
"simulator");
367367

lib/Basic/Platform.cpp

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,47 +19,39 @@
1919
using namespace swift;
2020

2121
bool swift::tripleIsiOSSimulator(const llvm::Triple &triple) {
22-
llvm::Triple::ArchType arch = triple.getArch();
2322
return (triple.isiOS() &&
2423
!tripleIsMacCatalystEnvironment(triple) &&
25-
// FIXME: transitional, this should eventually stop testing arch, and
26-
// switch to only checking the -environment field.
27-
(triple.isSimulatorEnvironment() ||
28-
arch == llvm::Triple::x86 || arch == llvm::Triple::x86_64));
24+
triple.isSimulatorEnvironment());
2925
}
3026

3127
bool swift::tripleIsAppleTVSimulator(const llvm::Triple &triple) {
32-
llvm::Triple::ArchType arch = triple.getArch();
33-
return (triple.isTvOS() &&
34-
// FIXME: transitional, this should eventually stop testing arch, and
35-
// switch to only checking the -environment field.
36-
(triple.isSimulatorEnvironment() ||
37-
arch == llvm::Triple::x86 || arch == llvm::Triple::x86_64));
28+
return (triple.isTvOS() && triple.isSimulatorEnvironment());
3829
}
3930

4031
bool swift::tripleIsWatchSimulator(const llvm::Triple &triple) {
41-
llvm::Triple::ArchType arch = triple.getArch();
42-
return (triple.isWatchOS() &&
43-
// FIXME: transitional, this should eventually stop testing arch, and
44-
// switch to only checking the -environment field.
45-
(triple.isSimulatorEnvironment() ||
46-
arch == llvm::Triple::x86 || arch == llvm::Triple::x86_64));
47-
}
48-
49-
bool swift::tripleIsAnySimulator(const llvm::Triple &triple) {
50-
// FIXME: transitional, this should eventually just use the -environment
51-
// field.
52-
return triple.isSimulatorEnvironment() ||
53-
tripleIsiOSSimulator(triple) ||
54-
tripleIsWatchSimulator(triple) ||
55-
tripleIsAppleTVSimulator(triple);
32+
return (triple.isWatchOS() && triple.isSimulatorEnvironment());
5633
}
5734

5835
bool swift::tripleIsMacCatalystEnvironment(const llvm::Triple &triple) {
5936
return triple.isiOS() && !triple.isTvOS() &&
6037
triple.getEnvironment() == llvm::Triple::MacABI;
6138
}
6239

40+
bool swift::tripleInfersSimulatorEnvironment(const llvm::Triple &triple) {
41+
switch (triple.getOS()) {
42+
case llvm::Triple::IOS:
43+
case llvm::Triple::TvOS:
44+
case llvm::Triple::WatchOS:
45+
return !triple.hasEnvironment() &&
46+
(triple.getArch() == llvm::Triple::x86 ||
47+
triple.getArch() == llvm::Triple::x86_64) &&
48+
!tripleIsMacCatalystEnvironment(triple);
49+
50+
default:
51+
return false;
52+
}
53+
}
54+
6355
bool swift::triplesAreValidForZippering(const llvm::Triple &target,
6456
const llvm::Triple &targetVariant) {
6557
// The arch and vendor must match.
@@ -327,14 +319,6 @@ getOSForAppleTargetSpecificModuleTriple(const llvm::Triple &triple) {
327319
static Optional<StringRef>
328320
getEnvironmentForAppleTargetSpecificModuleTriple(const llvm::Triple &triple) {
329321
auto tripleEnvironment = triple.getEnvironmentName();
330-
331-
// If the environment is empty, infer a "simulator" environment based on the
332-
// OS and architecture combination. This feature is deprecated and exists for
333-
// backwards compatibility only; build systems should pass the "simulator"
334-
// environment explicitly if they know they're building for a simulator.
335-
if (tripleEnvironment == "" && swift::tripleIsAnySimulator(triple))
336-
return StringRef("simulator");
337-
338322
return llvm::StringSwitch<Optional<StringRef>>(tripleEnvironment)
339323
.Cases("unknown", "", None)
340324
// These values are also supported, but are handled by the default case below:

lib/Driver/DarwinToolChains.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ toolchains::Darwin::addProfileGenerationArgs(ArgStringList &Arguments,
479479
}
480480

481481
StringRef Sim;
482-
if (tripleIsAnySimulator(Triple)) {
482+
if (Triple.isSimulatorEnvironment()) {
483483
Sim = "sim";
484484
}
485485

lib/Driver/Driver.cpp

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -264,17 +264,31 @@ static void validateArgs(DiagnosticEngine &diags, const ArgList &args,
264264
std::unique_ptr<ToolChain>
265265
Driver::buildToolChain(const llvm::opt::InputArgList &ArgList) {
266266

267-
if (const Arg *A = ArgList.getLastArg(options::OPT_target))
267+
if (const Arg *A = ArgList.getLastArg(options::OPT_target)) {
268268
DefaultTargetTriple = llvm::Triple::normalize(A->getValue());
269+
}
270+
271+
llvm::Triple target(DefaultTargetTriple);
269272

270-
const llvm::Triple target(DefaultTargetTriple);
273+
// Backward compatibility hack: infer "simulator" environment for x86
274+
// iOS/tvOS/watchOS.
275+
if (tripleInfersSimulatorEnvironment(target)) {
276+
// Set the simulator environment.
277+
target.setEnvironment(llvm::Triple::EnvironmentType::Simulator);
278+
279+
auto newTargetTriple = target.normalize();
280+
Diags.diagnose(SourceLoc(), diag::warning_inferred_simulator_target,
281+
DefaultTargetTriple, newTargetTriple);
282+
283+
DefaultTargetTriple = newTargetTriple;
284+
}
271285

272286
switch (target.getOS()) {
273-
case llvm::Triple::Darwin:
274-
case llvm::Triple::MacOSX:
275287
case llvm::Triple::IOS:
276288
case llvm::Triple::TvOS:
277-
case llvm::Triple::WatchOS: {
289+
case llvm::Triple::WatchOS:
290+
case llvm::Triple::Darwin:
291+
case llvm::Triple::MacOSX: {
278292
Optional<llvm::Triple> targetVariant;
279293
if (const Arg *A = ArgList.getLastArg(options::OPT_target_variant))
280294
targetVariant = llvm::Triple(llvm::Triple::normalize(A->getValue()));

lib/Frontend/CompilerInvocation.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,9 +553,22 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
553553

554554
llvm::Triple Target = Opts.Target;
555555
StringRef TargetArg;
556+
std::string TargetArgScratch;
557+
556558
if (const Arg *A = Args.getLastArg(OPT_target)) {
557559
Target = llvm::Triple(A->getValue());
558560
TargetArg = A->getValue();
561+
562+
// Backward compatibility hack: infer "simulator" environment for x86
563+
// iOS/tvOS/watchOS. The driver takes care of this for the frontend
564+
// most of the time, but loading of old .swiftinterface files goes
565+
// directly to the frontend.
566+
if (tripleInfersSimulatorEnvironment(Target)) {
567+
// Set the simulator environment.
568+
Target.setEnvironment(llvm::Triple::EnvironmentType::Simulator);
569+
TargetArgScratch = Target.str();
570+
TargetArg = TargetArgScratch;
571+
}
559572
}
560573

561574
if (const Arg *A = Args.getLastArg(OPT_target_variant)) {

lib/IRGen/SwiftTargetInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ static void configureX86_64(IRGenModule &IGM, const llvm::Triple &triple,
6969
SWIFT_ABI_X86_64_SWIFT_SPARE_BITS_MASK);
7070
setToMask(target.IsObjCPointerBit, 64, SWIFT_ABI_X86_64_IS_OBJC_BIT);
7171

72-
if (tripleIsAnySimulator(triple)) {
72+
if (triple.isSimulatorEnvironment()) {
7373
setToMask(target.ObjCPointerReservedBits, 64,
7474
SWIFT_ABI_X86_64_SIMULATOR_OBJC_RESERVED_BITS_MASK);
7575
} else {

lib/Serialization/ModuleFile.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,6 +1341,9 @@ static bool areCompatibleArchitectures(const llvm::Triple &moduleTarget,
13411341

13421342
static bool areCompatibleOSs(const llvm::Triple &moduleTarget,
13431343
const llvm::Triple &ctxTarget) {
1344+
if (moduleTarget.getEnvironment() != ctxTarget.getEnvironment())
1345+
return false;
1346+
13441347
if (moduleTarget.getOS() == ctxTarget.getOS())
13451348
return true;
13461349

test/Driver/infer-simulator.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Test the inference of the "simulator" environment within the driver.
2+
3+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios11.0 %s > %t.simple.txt 2>&1
4+
// RUN: %FileCheck -check-prefix WARN_IOS_SIMULATOR %s < %t.simple.txt
5+
// WARN_IOS_SIMULATOR: warning: inferring simulator environment for target 'x86_64-apple-ios11.0'; use '-target x86_64-apple-ios11.0-simulator' instead
6+
7+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-tvos10.0 %s > %t.simple.txt 2>&1
8+
// RUN: %FileCheck -check-prefix WARN_TVOS_SIMULATOR %s < %t.simple.txt
9+
// WARN_TVOS_SIMULATOR: inferring simulator environment for target 'x86_64-apple-tvos10.0'; use '-target x86_64-apple-tvos10.0-simulator' instead
10+
11+
// RUN: %swiftc_driver -driver-print-jobs -target i386-apple-watchos4.0 %s > %t.simple.txt 2>&1
12+
// RUN: %FileCheck -check-prefix WARN_WATCHOS_SIMULATOR %s < %t.simple.txt
13+
// WARN_WATCHOS_SIMULATOR: warning: inferring simulator environment for target 'i386-apple-watchos4.0'; use '-target i386-apple-watchos4.0-simulator' instead

test/Driver/linker-arclite.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// CHECK-SAME: -o {{[^ ]+}}
1010

1111

12-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios8.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix IOS_ARCLITE %s
12+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios8.0-simulator %S/../Inputs/empty.swift | %FileCheck -check-prefix IOS_ARCLITE %s
1313

1414
// IOS_ARCLITE: bin/ld{{"? }}
1515
// IOS_ARCLITE: -force_load {{[^ ]+/lib/arc/libarclite_iphonesimulator.a}}
@@ -18,8 +18,8 @@
1818

1919
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-macosx10.11 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO_ARCLITE %s
2020
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-macosx10.10 %S/../Inputs/empty.swift | %FileCheck -check-prefix ANY_ARCLITE %s
21-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios9 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO_ARCLITE %s
22-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios8 %S/../Inputs/empty.swift | %FileCheck -check-prefix ANY_ARCLITE %s
21+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios9-simulator %S/../Inputs/empty.swift | %FileCheck -check-prefix NO_ARCLITE %s
22+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios8-simulator %S/../Inputs/empty.swift | %FileCheck -check-prefix ANY_ARCLITE %s
2323
// RUN: %swiftc_driver -driver-print-jobs -target arm64-apple-tvos9 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO_ARCLITE %s
2424
// RUN: %swiftc_driver -driver-print-jobs -target armv7k-apple-watchos2 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO_ARCLITE %s
2525

test/Driver/linker.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66

77
// RUN: not %swiftc_driver -driver-print-jobs -target x86_64-apple-macosx10.9 -static-stdlib %s 2>&1 | %FileCheck -check-prefix=SIMPLE_STATIC %s
88

9-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios7.1 %s 2>&1 > %t.simple.txt
9+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios7.1-simulator %s 2>&1 > %t.simple.txt
1010
// RUN: %FileCheck -check-prefix IOS_SIMPLE %s < %t.simple.txt
1111

12-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-tvos9.0 %s 2>&1 > %t.simple.txt
12+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-tvos9.0-simulator %s 2>&1 > %t.simple.txt
1313
// RUN: %FileCheck -check-prefix tvOS_SIMPLE %s < %t.simple.txt
1414

15-
// RUN: %swiftc_driver -driver-print-jobs -target i386-apple-watchos2.0 %s 2>&1 > %t.simple.txt
15+
// RUN: %swiftc_driver -driver-print-jobs -target i386-apple-watchos2.0-simulator %s 2>&1 > %t.simple.txt
1616
// RUN: %FileCheck -check-prefix watchOS_SIMPLE %s < %t.simple.txt
1717

1818
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-unknown-linux-gnu -Ffoo -Fsystem car -F cdr -framework bar -Lbaz -lboo -Xlinker -undefined %s 2>&1 > %t.linux.txt
@@ -47,7 +47,7 @@
4747
// RUN: %FileCheck %s < %t.complex.txt
4848
// RUN: %FileCheck -check-prefix COMPLEX %s < %t.complex.txt
4949

50-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios7.1 -Xlinker -rpath -Xlinker customrpath -L foo %s 2>&1 > %t.simple.txt
50+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-ios7.1-simulator -Xlinker -rpath -Xlinker customrpath -L foo %s 2>&1 > %t.simple.txt
5151
// RUN: %FileCheck -check-prefix IOS-linker-order %s < %t.simple.txt
5252

5353
// RUN: %swiftc_driver -driver-print-jobs -target armv7-unknown-linux-gnueabihf -Xlinker -rpath -Xlinker customrpath -L foo %s 2>&1 > %t.linux.txt

test/Driver/print_target_info.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
// RUN: %swift_driver -print-target-info -target x86_64-apple-macosx10.15 -target-variant x86_64-apple-ios13-macabi | %FileCheck -check-prefix CHECK-ZIPPERED %s
88
// RUN: %target-swift-frontend -print-target-info -target x86_64-apple-macosx10.15 -target-variant x86_64-apple-ios13-macabi | %FileCheck -check-prefix CHECK-ZIPPERED %s
99

10+
// RUN: %swift_driver -print-target-info -target x86_64-apple-ios12.0 | %FileCheck -check-prefix CHECK-IOS-SIM %s
11+
1012
// CHECK-IOS: "target": {
1113
// CHECK-IOS: "triple": "arm64-apple-ios12.0",
1214
// CHECK-IOS: "unversionedTriple": "arm64-apple-ios",
@@ -50,3 +52,11 @@
5052
// CHECK-ZIPPERED: "swiftRuntimeCompatibilityVersion": "5.1"
5153
// CHECK-ZIPPERED: "librariesRequireRPath": false
5254
// CHECK-ZIPPERED: }
55+
56+
// CHECK-IOS-SIM: "target": {
57+
// CHECK-IOS-SIM: "triple": "x86_64-apple-ios12.0-simulator",
58+
// CHECK-IOS-SIM: "unversionedTriple": "x86_64-apple-ios-simulator",
59+
// CHECK-IOS-SIM: "moduleTriple": "x86_64-apple-ios-simulator",
60+
// CHECK-IOS-SIM: "swiftRuntimeCompatibilityVersion": "5.0",
61+
// CHECK-IOS-SIM: "librariesRequireRPath": true
62+
// CHECK-IOS-SIM: }

test/Driver/profiling.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-macosx10.9 %s | %FileCheck -check-prefix=CHECK -check-prefix=OSX %s
22

3-
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-ios7.1 -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=IOS %s
3+
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-ios7.1-simulator -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=IOS %s
44
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target arm64-apple-ios7.1 -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=IOS %s
55

6-
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-ios7.1 -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=IOSSIM %s
6+
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-ios7.1-simulator -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=IOSSIM %s
77
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target arm64-apple-ios7.1 -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=IOS %s
88

9-
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-tvos9.0 -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=tvOS %s
9+
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-tvos9.0-simulator -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=tvOS %s
1010
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target arm64-apple-tvos9.0 -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=tvOS %s
1111

12-
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-tvos9.0 -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=tvOS_SIM %s
12+
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-apple-tvos9.0-simulator -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=tvOS_SIM %s
1313
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target arm64-apple-tvos9.0 -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=tvOS %s
1414

15-
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target i386-apple-watchos2.0 -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=watchOS %s
15+
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target i386-apple-watchos2.0-simulator -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=watchOS %s
1616
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target armv7k-apple-watchos2.0 -resource-dir %S/Inputs/fake-resource-dir-old/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=watchOS %s
17-
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target i386-apple-watchos2.0 -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=watchOS_SIM %s
17+
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target i386-apple-watchos2.0-simulator -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=watchOS_SIM %s
1818
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target armv7k-apple-watchos2.0 -resource-dir %S/Inputs/fake-resource-dir/lib/swift/ %s | %FileCheck -check-prefix=CHECK -check-prefix=watchOS %s
1919

2020
// RUN: %swiftc_driver -driver-print-jobs -profile-generate -target x86_64-unknown-linux-gnu %s | %FileCheck -check-prefix=CHECK -check-prefix=LINUX %s

0 commit comments

Comments
 (0)