@@ -395,32 +395,46 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
395
395
}
396
396
}
397
397
} else if (Major == 11 ) {
398
- return floorFor64 (llvm::VersionTuple (5 , 3 ));
398
+ if (Minor <= 3 )
399
+ return floorFor64 (llvm::VersionTuple (5 , 3 ));
400
+
401
+ return floorFor64 (llvm::VersionTuple (5 , 4 ));
402
+ } else if (Major == 12 ) {
403
+ return floorFor64 (llvm::VersionTuple (5 , 5 ));
399
404
}
400
405
} else if (Triple.isiOS ()) { // includes tvOS
401
406
Triple.getiOSVersion (Major, Minor, Micro);
402
407
403
- auto floorFor64e = [&Triple](llvm::VersionTuple v) {
408
+ auto floorForArchitecture = [&Triple, Major](llvm::VersionTuple v) {
409
+ // arm64 simulators and macCatalyst are introduced in iOS 14.0/tvOS 14.0
410
+ // with Swift 5.3
411
+ if (Triple.isAArch64 () && Major <= 14 &&
412
+ (Triple.isSimulatorEnvironment () ||
413
+ Triple.isMacCatalystEnvironment ()))
414
+ return MAX (v, llvm::VersionTuple (5 , 3 ));
415
+
404
416
if (Triple.getArchName () != " arm64e" ) return v;
417
+
405
418
// iOS got first arm64e support in 12.0, which has a Swift runtime version
406
419
// older than 5.0, so let's floor at VersionTuple(5, 0) instead.
407
420
return MAX (v, llvm::VersionTuple (5 , 0 ));
408
421
};
409
422
410
- // arm64 simulators and macCatalyst are introduced in iOS 14.0/tvOS 14.0
411
- // with Swift 5.3
412
- if (Triple.isAArch64 () && Major <= 14 &&
413
- (Triple.isSimulatorEnvironment () || Triple.isMacCatalystEnvironment ()))
414
- return floorFor64e (llvm::VersionTuple (5 , 3 ));
415
-
416
423
if (Major <= 12 ) {
417
- return floorFor64e (llvm::VersionTuple (5 , 0 ));
424
+ return floorForArchitecture (llvm::VersionTuple (5 , 0 ));
418
425
} else if (Major <= 13 ) {
419
426
if (Minor <= 3 ) {
420
- return floorFor64e (llvm::VersionTuple (5 , 1 ));
427
+ return floorForArchitecture (llvm::VersionTuple (5 , 1 ));
421
428
} else {
422
- return floorFor64e (llvm::VersionTuple (5 , 2 ));
429
+ return floorForArchitecture (llvm::VersionTuple (5 , 2 ));
423
430
}
431
+ } else if (Major <= 14 ) {
432
+ if (Minor <= 4 )
433
+ return floorForArchitecture (llvm::VersionTuple (5 , 3 ));
434
+
435
+ return floorForArchitecture (llvm::VersionTuple (5 , 4 ));
436
+ } else if (Major <= 15 ) {
437
+ return floorForArchitecture (llvm::VersionTuple (5 , 5 ));
424
438
}
425
439
} else if (Triple.isWatchOS ()) {
426
440
auto floorFor64bits = [&Triple](llvm::VersionTuple v) {
@@ -438,6 +452,13 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
438
452
} else {
439
453
return floorFor64bits (llvm::VersionTuple (5 , 2 ));
440
454
}
455
+ } else if (Major <= 7 ) {
456
+ if (Minor <= 4 )
457
+ return floorFor64bits (llvm::VersionTuple (5 , 3 ));
458
+
459
+ return floorFor64bits (llvm::VersionTuple (5 , 4 ));
460
+ } else if (Major <= 8 ) {
461
+ return floorFor64bits (llvm::VersionTuple (5 , 5 ));
441
462
}
442
463
}
443
464
0 commit comments