@@ -471,7 +471,13 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
471471 return floorFor64 (llvm::VersionTuple (5 , 5 ));
472472 return floorFor64 (llvm::VersionTuple (5 , 6 ));
473473 } else if (Major == 13 ) {
474- return floorFor64 (llvm::VersionTuple (5 , 7 ));
474+ if (Minor <= 2 )
475+ return floorFor64 (llvm::VersionTuple (5 , 7 ));
476+ return floorFor64 (llvm::VersionTuple (5 , 8 ));
477+ } else if (Major == 14 ) {
478+ if (Minor <= 3 )
479+ return floorFor64 (llvm::VersionTuple (5 , 9 ));
480+ return floorFor64 (llvm::VersionTuple (5 , 10 ));
475481 }
476482 } else if (Triple.isiOS ()) { // includes tvOS
477483 llvm::VersionTuple OSVersion = Triple.getiOSVersion ();
@@ -511,7 +517,13 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
511517 return floorForArchitecture (llvm::VersionTuple (5 , 5 ));
512518 return floorForArchitecture (llvm::VersionTuple (5 , 6 ));
513519 } else if (Major <= 16 ) {
514- return floorForArchitecture (llvm::VersionTuple (5 , 7 ));
520+ if (Minor <= 3 )
521+ return floorForArchitecture (llvm::VersionTuple (5 , 7 ));
522+ return floorForArchitecture (llvm::VersionTuple (5 , 8 ));
523+ } else if (Major <= 17 ) {
524+ if (Minor <= 3 )
525+ return floorForArchitecture (llvm::VersionTuple (5 , 9 ));
526+ return floorForArchitecture (llvm::VersionTuple (5 , 10 ));
515527 }
516528 } else if (Triple.isWatchOS ()) {
517529 llvm::VersionTuple OSVersion = Triple.getWatchOSVersion ();
@@ -542,11 +554,25 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
542554 return floorFor64bits (llvm::VersionTuple (5 , 5 ));
543555 return floorFor64bits (llvm::VersionTuple (5 , 6 ));
544556 } else if (Major <= 9 ) {
545- return floorFor64bits (llvm::VersionTuple (5 , 7 ));
557+ if (Minor <= 3 )
558+ return floorFor64bits (llvm::VersionTuple (5 , 7 ));
559+ return floorFor64bits (llvm::VersionTuple (5 , 8 ));
560+ } else if (Major <= 10 ) {
561+ if (Minor <= 3 )
562+ return floorFor64bits (llvm::VersionTuple (5 , 9 ));
563+ return floorFor64bits (llvm::VersionTuple (5 , 10 ));
546564 }
547565 }
548566 else if (Triple.isXROS ()) {
549- return std::nullopt ;
567+ llvm::VersionTuple OSVersion = Triple.getOSVersion ();
568+ unsigned Major = OSVersion.getMajor ();
569+ unsigned Minor = OSVersion.getMinor ().value_or (0 );
570+
571+ if (Major <= 1 ) {
572+ if (Minor <= 0 )
573+ return llvm::VersionTuple (5 , 9 );
574+ return llvm::VersionTuple (5 , 10 );
575+ }
550576 }
551577
552578 return std::nullopt ;
0 commit comments