summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorDavid Chisnall <csdavec@swan.ac.uk>2018-05-22 10:13:06 +0000
committerDavid Chisnall <csdavec@swan.ac.uk>2018-05-22 10:13:06 +0000
commit404bbcbdcb7d257b2071c1bc45b971352f04a21f (patch)
tree0e87e970e295c23fc68398dd4d7ae91951176ce7 /clang/lib/Frontend/InitPreprocessor.cpp
parente96c488aa7e814adea74547d13ad8047b601c6bd (diff)
downloadbcm5719-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.cpp13
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();
OpenPOWER on IntegriCloud