File tree Expand file tree Collapse file tree 2 files changed +13
-4
lines changed Expand file tree Collapse file tree 2 files changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -259,7 +259,7 @@ AvailabilityContext ASTContext::getSwift50Availability() {
259
259
return AvailabilityContext (
260
260
VersionRange::allGTE (llvm::VersionTuple (12 ,2 )));
261
261
} else if (target.isWatchOS ()) {
262
- if (target.getArch () == llvm::Triple::ArchType::x86_64 )
262
+ if (target.isArch64Bit () )
263
263
return AvailabilityContext::alwaysAvailable ();
264
264
265
265
return AvailabilityContext (
@@ -297,6 +297,9 @@ AvailabilityContext ASTContext::getSwift51Availability() {
297
297
return AvailabilityContext (
298
298
VersionRange::allGTE (llvm::VersionTuple (13 ,0 ,0 )));
299
299
} else if (target.isWatchOS ()) {
300
+ if (target.isArch64Bit ())
301
+ return AvailabilityContext::alwaysAvailable ();
302
+
300
303
return AvailabilityContext (
301
304
VersionRange::allGTE (llvm::VersionTuple (6 ,0 ,0 )));
302
305
} else {
Original file line number Diff line number Diff line change @@ -423,14 +423,20 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
423
423
}
424
424
}
425
425
} else if (Triple.isWatchOS ()) {
426
+ auto floorFor64bits = [&Triple](llvm::VersionTuple v) {
427
+ if (!Triple.isArch64Bit ()) return v;
428
+ // 64-bit watchOS was introduced with Swift 5.3
429
+ return MAX (v, llvm::VersionTuple (5 , 3 ));
430
+ };
431
+
426
432
Triple.getWatchOSVersion (Major, Minor, Micro);
427
433
if (Major <= 5 ) {
428
- return llvm::VersionTuple (5 , 0 );
434
+ return floorFor64bits ( llvm::VersionTuple (5 , 0 ) );
429
435
} else if (Major <= 6 ) {
430
436
if (Minor <= 1 ) {
431
- return llvm::VersionTuple (5 , 1 );
437
+ return floorFor64bits ( llvm::VersionTuple (5 , 1 ) );
432
438
} else {
433
- return llvm::VersionTuple (5 , 2 );
439
+ return floorFor64bits ( llvm::VersionTuple (5 , 2 ) );
434
440
}
435
441
}
436
442
}
You can’t perform that action at this time.
0 commit comments