summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2016-07-18 20:29:14 +0000
committerBob Wilson <bob.wilson@apple.com>2016-07-18 20:29:14 +0000
commit4cf27c4d6f15ebc2603128a1426c9684bb1e6b6d (patch)
treea5d5470b2cda11f26f121f220bb594844e711f9f /clang/lib/Basic
parent258a651f3a361af977bbb8a2daeaa7452142fd92 (diff)
downloadbcm5719-llvm-4cf27c4d6f15ebc2603128a1426c9684bb1e6b6d.tar.gz
bcm5719-llvm-4cf27c4d6f15ebc2603128a1426c9684bb1e6b6d.zip
Allow iOS and tvOS version numbers with 2-digit major version numbers.
rdar://problem/26921601 llvm-svn: 275905
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index c3ca8c8af5d..909c7dd00ac 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -158,14 +158,25 @@ static void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts,
// Set the appropriate OS version define.
if (Triple.isiOS()) {
- assert(Maj < 10 && Min < 100 && Rev < 100 && "Invalid version!");
- char Str[6];
- Str[0] = '0' + Maj;
- Str[1] = '0' + (Min / 10);
- Str[2] = '0' + (Min % 10);
- Str[3] = '0' + (Rev / 10);
- Str[4] = '0' + (Rev % 10);
- Str[5] = '\0';
+ assert(Maj < 100 && Min < 100 && Rev < 100 && "Invalid version!");
+ char Str[7];
+ if (Maj < 10) {
+ Str[0] = '0' + Maj;
+ Str[1] = '0' + (Min / 10);
+ Str[2] = '0' + (Min % 10);
+ Str[3] = '0' + (Rev / 10);
+ Str[4] = '0' + (Rev % 10);
+ Str[5] = '\0';
+ } else {
+ // Handle versions >= 10.
+ Str[0] = '0' + (Maj / 10);
+ Str[1] = '0' + (Maj % 10);
+ Str[2] = '0' + (Min / 10);
+ Str[3] = '0' + (Min % 10);
+ Str[4] = '0' + (Rev / 10);
+ Str[5] = '0' + (Rev % 10);
+ Str[6] = '\0';
+ }
if (Triple.isTvOS())
Builder.defineMacro("__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__", Str);
else
OpenPOWER on IntegriCloud