Handle minor version numbers in __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
like "10.3.9"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56873 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index f75aacb..9411dd3 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -654,21 +654,16 @@
char *End = 0;
VersionNum = (int)strtol(Start, &End, 10);
+ // The version number must be in the range 0-9.
+ MacOSVersionMinIsInvalid = (unsigned)VersionNum > 9;
+
// Turn MacOSVersionMin into a darwin number: e.g. 10.3.9 is 3 -> 7.
Triple += llvm::itostr(VersionNum+4);
- if (End[0] == '.') { // 10.4.17 is ok.
- // Add the period piece (.17) to the end of the triple. This gives us
- // something like ...-darwin8.17
+ if (End[0] == '.' && isdigit(End[1]) && End[2] == '\0') { // 10.4.7 is ok.
+ // Add the period piece (.7) to the end of the triple. This gives us
+ // something like ...-darwin8.7
Triple += End;
-
- // Verify that the rest after the number are all digits.
- for (++End; isdigit(*End); ++End)
- /*skip digits*/;
-
- // If there were any non-digits after the number, reject it.
- MacOSVersionMinIsInvalid = *End != '\0';
-
} else if (End[0] != '\0') { // "10.4" is ok. 10.4x is not.
MacOSVersionMinIsInvalid = true;
}