diff options
author | David Chisnall <csdavec@swan.ac.uk> | 2018-05-22 10:13:06 +0000 |
---|---|---|
committer | David Chisnall <csdavec@swan.ac.uk> | 2018-05-22 10:13:06 +0000 |
commit | 404bbcbdcb7d257b2071c1bc45b971352f04a21f (patch) | |
tree | 0e87e970e295c23fc68398dd4d7ae91951176ce7 /clang/lib/Frontend/InitPreprocessor.cpp | |
parent | e96c488aa7e814adea74547d13ad8047b601c6bd (diff) | |
download | bcm5719-llvm-404bbcbdcb7d257b2071c1bc45b971352f04a21f.tar.gz bcm5719-llvm-404bbcbdcb7d257b2071c1bc45b971352f04a21f.zip |
Revert "Revert r332955 "GNUstep Objective-C ABI version 2""
llvm-svn: 332963
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r-- | clang/lib/Frontend/InitPreprocessor.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index f2182c8ebc6..5bdfa14884d 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -645,6 +645,19 @@ static void InitializePredefinedMacros(const TargetInfo &TI, if (LangOpts.ObjCRuntime.isNeXTFamily()) Builder.defineMacro("__NEXT_RUNTIME__"); + if (LangOpts.ObjCRuntime.getKind() == ObjCRuntime::GNUstep) { + auto version = LangOpts.ObjCRuntime.getVersion(); + std::string versionString = "1"; + // Don't rely on the tuple argument, because we can be asked to target + // later ABIs than we actually support, so clamp these values to those + // currently supported + if (version >= VersionTuple(2, 0)) + Builder.defineMacro("__OBJC_GNUSTEP_RUNTIME_ABI__", "20"); + else + Builder.defineMacro("__OBJC_GNUSTEP_RUNTIME_ABI__", + "1" + Twine(std::min(8U, version.getMinor().getValueOr(0)))); + } + if (LangOpts.ObjCRuntime.getKind() == ObjCRuntime::ObjFW) { VersionTuple tuple = LangOpts.ObjCRuntime.getVersion(); |