aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorYaron Keren <yaron.keren@gmail.com>2016-07-21 07:44:41 +0000
committerYaron Keren <yaron.keren@gmail.com>2016-07-21 07:44:41 +0000
commit7996340d9ff4d3ffaed24fbc74d585852a0f1476 (patch)
tree856f7cf3f815e424fd0348e2cddc26846c25fb8a /clang/lib/Frontend/InitPreprocessor.cpp
parent938c5031ab9967306e5749658eee7336cd91e589 (diff)
downloadllvm-7996340d9ff4d3ffaed24fbc74d585852a0f1476.zip
llvm-7996340d9ff4d3ffaed24fbc74d585852a0f1476.tar.gz
llvm-7996340d9ff4d3ffaed24fbc74d585852a0f1476.tar.bz2
Provide __GLIBCXX_TYPE_INT_N_0 and __GLIBCXX_BITSIZE_INT_N_0 when in C++ gnu language extensions.
These are used by libstdc++ <type_traits> for is_integral<__int128>. Addresses http://llvm.org/pr23156. llvm-svn: 276252
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index cc4a0bf..f8b912e 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -961,6 +961,11 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
#include "clang/Basic/OpenCLExtensions.def"
}
+ if (TI.hasInt128Type() && LangOpts.CPlusPlus && LangOpts.GNUMode) {
+ Builder.defineMacro("__GLIBCXX_TYPE_INT_N_0", "__int128");
+ Builder.defineMacro("__GLIBCXX_BITSIZE_INT_N_0", "128");
+ }
+
// Get other target #defines.
TI.getTargetDefines(LangOpts, Builder);
}