@@ -202,6 +202,7 @@ StringRef Triple::getOSTypeName(OSType Kind) {
202
202
case ELFIAMCU: return " elfiamcu" ;
203
203
case TvOS: return " tvos" ;
204
204
case WatchOS: return " watchos" ;
205
+ case XROS: return " xros" ;
205
206
case Mesa3D: return " mesa3d" ;
206
207
case Contiki: return " contiki" ;
207
208
case AMDPAL: return " amdpal" ;
@@ -501,6 +502,8 @@ static Triple::OSType parseOS(StringRef OSName) {
501
502
.StartsWith (" elfiamcu" , Triple::ELFIAMCU)
502
503
.StartsWith (" tvos" , Triple::TvOS)
503
504
.StartsWith (" watchos" , Triple::WatchOS)
505
+ .StartsWith (" xros" , Triple::XROS)
506
+ .StartsWith (" visionos" , Triple::XROS)
504
507
.StartsWith (" mesa3d" , Triple::Mesa3D)
505
508
.StartsWith (" contiki" , Triple::Contiki)
506
509
.StartsWith (" amdpal" , Triple::AMDPAL)
@@ -1051,6 +1054,8 @@ void Triple::getOSVersion(unsigned &Major, unsigned &Minor,
1051
1054
OSName = OSName.substr (OSTypeName.size ());
1052
1055
else if (getOS () == MacOSX)
1053
1056
OSName.consume_front (" macos" );
1057
+ else if (OSName.startswith (" visionos" ))
1058
+ OSName.consume_front (" visionos" );
1054
1059
1055
1060
parseVersionFromName (OSName, Major, Minor, Micro);
1056
1061
}
@@ -1092,6 +1097,8 @@ bool Triple::getMacOSXVersion(unsigned &Major, unsigned &Minor,
1092
1097
Minor = 4 ;
1093
1098
Micro = 0 ;
1094
1099
break ;
1100
+ case XROS:
1101
+ llvm_unreachable (" OSX version isn't relevant for xrOS" );
1095
1102
}
1096
1103
return true ;
1097
1104
}
@@ -1119,6 +1126,12 @@ void Triple::getiOSVersion(unsigned &Major, unsigned &Minor,
1119
1126
break ;
1120
1127
case WatchOS:
1121
1128
llvm_unreachable (" conflicting triple info" );
1129
+ case XROS: {
1130
+ // xrOS 1 is aligned with iOS 17.
1131
+ getOSVersion (Major, Minor, Micro);
1132
+ Major += 16 ;
1133
+ break ;
1134
+ }
1122
1135
}
1123
1136
}
1124
1137
@@ -1143,6 +1156,8 @@ void Triple::getWatchOSVersion(unsigned &Major, unsigned &Minor,
1143
1156
break ;
1144
1157
case IOS:
1145
1158
llvm_unreachable (" conflicting triple info" );
1159
+ case XROS:
1160
+ llvm_unreachable (" watchOS version isn't relevant for xrOS" );
1146
1161
}
1147
1162
}
1148
1163
0 commit comments