@@ -48,12 +48,12 @@ void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts,
48
48
Builder.defineMacro (" _REENTRANT" );
49
49
50
50
// Get the platform type and version number from the triple.
51
- VersionTuple OsVersion ;
51
+ unsigned Maj, Min, Rev ;
52
52
if (Triple.isMacOSX ()) {
53
- Triple.getMacOSXVersion (OsVersion );
53
+ Triple.getMacOSXVersion (Maj, Min, Rev );
54
54
PlatformName = " macos" ;
55
55
} else {
56
- OsVersion = Triple.getOSVersion ();
56
+ Triple.getOSVersion (Maj, Min, Rev );
57
57
PlatformName = llvm::Triple::getOSTypeName (Triple.getOS ());
58
58
if (PlatformName == " ios" && Triple.isMacCatalystEnvironment ())
59
59
PlatformName = " maccatalyst" ;
@@ -63,29 +63,29 @@ void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts,
63
63
// generating code for Win32 ABI. No need to emit
64
64
// __ENVIRONMENT_XX_OS_VERSION_MIN_REQUIRED__.
65
65
if (PlatformName == " win32" ) {
66
- PlatformMinVersion = OsVersion ;
66
+ PlatformMinVersion = VersionTuple (Maj, Min, Rev) ;
67
67
return ;
68
68
}
69
69
70
70
// Set the appropriate OS version define.
71
71
if (Triple.isiOS ()) {
72
- assert (OsVersion < VersionTuple ( 100 ) && " Invalid version!" );
72
+ assert (Maj < 100 && Min < 100 && Rev < 100 && " Invalid version!" );
73
73
char Str[7 ];
74
- if (OsVersion. getMajor () < 10 ) {
75
- Str[0 ] = ' 0' + OsVersion. getMajor () ;
76
- Str[1 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) / 10 );
77
- Str[2 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) % 10 );
78
- Str[3 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) / 10 );
79
- Str[4 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) % 10 );
74
+ if (Maj < 10 ) {
75
+ Str[0 ] = ' 0' + Maj ;
76
+ Str[1 ] = ' 0' + (Min / 10 );
77
+ Str[2 ] = ' 0' + (Min % 10 );
78
+ Str[3 ] = ' 0' + (Rev / 10 );
79
+ Str[4 ] = ' 0' + (Rev % 10 );
80
80
Str[5 ] = ' \0 ' ;
81
81
} else {
82
82
// Handle versions >= 10.
83
- Str[0 ] = ' 0' + (OsVersion. getMajor () / 10 );
84
- Str[1 ] = ' 0' + (OsVersion. getMajor () % 10 );
85
- Str[2 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) / 10 );
86
- Str[3 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) % 10 );
87
- Str[4 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) / 10 );
88
- Str[5 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) % 10 );
83
+ Str[0 ] = ' 0' + (Maj / 10 );
84
+ Str[1 ] = ' 0' + (Maj % 10 );
85
+ Str[2 ] = ' 0' + (Min / 10 );
86
+ Str[3 ] = ' 0' + (Min % 10 );
87
+ Str[4 ] = ' 0' + (Rev / 10 );
88
+ Str[5 ] = ' 0' + (Rev % 10 );
89
89
Str[6 ] = ' \0 ' ;
90
90
}
91
91
if (Triple.isTvOS ())
@@ -95,36 +95,36 @@ void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts,
95
95
Str);
96
96
97
97
} else if (Triple.isWatchOS ()) {
98
- assert (OsVersion < VersionTuple ( 10 ) && " Invalid version!" );
98
+ assert (Maj < 10 && Min < 100 && Rev < 100 && " Invalid version!" );
99
99
char Str[6 ];
100
- Str[0 ] = ' 0' + OsVersion. getMajor () ;
101
- Str[1 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) / 10 );
102
- Str[2 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) % 10 );
103
- Str[3 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) / 10 );
104
- Str[4 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) % 10 );
100
+ Str[0 ] = ' 0' + Maj ;
101
+ Str[1 ] = ' 0' + (Min / 10 );
102
+ Str[2 ] = ' 0' + (Min % 10 );
103
+ Str[3 ] = ' 0' + (Rev / 10 );
104
+ Str[4 ] = ' 0' + (Rev % 10 );
105
105
Str[5 ] = ' \0 ' ;
106
106
Builder.defineMacro (" __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__" , Str);
107
107
} else if (Triple.isMacOSX ()) {
108
108
// Note that the Driver allows versions which aren't representable in the
109
109
// define (because we only get a single digit for the minor and micro
110
110
// revision numbers). So, we limit them to the maximum representable
111
111
// version.
112
- assert (OsVersion < VersionTuple ( 100 ) && " Invalid version!" );
112
+ assert (Maj < 100 && Min < 100 && Rev < 100 && " Invalid version!" );
113
113
char Str[7 ];
114
- if (OsVersion < VersionTuple ( 10 , 10 )) {
115
- Str[0 ] = ' 0' + (OsVersion. getMajor () / 10 );
116
- Str[1 ] = ' 0' + (OsVersion. getMajor () % 10 );
117
- Str[2 ] = ' 0' + std::min (OsVersion. getMinor (). getValueOr ( 0 ) , 9U );
118
- Str[3 ] = ' 0' + std::min (OsVersion. getSubminor (). getValueOr ( 0 ) , 9U );
114
+ if (Maj < 10 || (Maj == 10 && Min < 10 )) {
115
+ Str[0 ] = ' 0' + (Maj / 10 );
116
+ Str[1 ] = ' 0' + (Maj % 10 );
117
+ Str[2 ] = ' 0' + std::min (Min , 9U );
118
+ Str[3 ] = ' 0' + std::min (Rev , 9U );
119
119
Str[4 ] = ' \0 ' ;
120
120
} else {
121
121
// Handle versions > 10.9.
122
- Str[0 ] = ' 0' + (OsVersion. getMajor () / 10 );
123
- Str[1 ] = ' 0' + (OsVersion. getMajor () % 10 );
124
- Str[2 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) / 10 );
125
- Str[3 ] = ' 0' + (OsVersion. getMinor (). getValueOr ( 0 ) % 10 );
126
- Str[4 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) / 10 );
127
- Str[5 ] = ' 0' + (OsVersion. getSubminor (). getValueOr ( 0 ) % 10 );
122
+ Str[0 ] = ' 0' + (Maj / 10 );
123
+ Str[1 ] = ' 0' + (Maj % 10 );
124
+ Str[2 ] = ' 0' + (Min / 10 );
125
+ Str[3 ] = ' 0' + (Min % 10 );
126
+ Str[4 ] = ' 0' + (Rev / 10 );
127
+ Str[5 ] = ' 0' + (Rev % 10 );
128
128
Str[6 ] = ' \0 ' ;
129
129
}
130
130
Builder.defineMacro (" __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__" , Str);
@@ -134,7 +134,7 @@ void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts,
134
134
if (Triple.isOSDarwin ())
135
135
Builder.defineMacro (" __MACH__" );
136
136
137
- PlatformMinVersion = OsVersion ;
137
+ PlatformMinVersion = VersionTuple (Maj, Min, Rev) ;
138
138
}
139
139
140
140
static void addMinGWDefines (const llvm::Triple &Triple, const LangOptions &Opts,
0 commit comments