Author: yrnkrn Date: Thu Jul 21 02:44:41 2016 New Revision: 276252 URL: http://llvm.org/viewvc/llvm-project?rev=276252&view=rev Log: 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.
Added: cfe/trunk/test/Frontend/int128.cpp Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=276252&r1=276251&r2=276252&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original) +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Thu Jul 21 02:44:41 2016 @@ -961,6 +961,11 @@ static void InitializePredefinedMacros(c #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); } Added: cfe/trunk/test/Frontend/int128.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/int128.cpp?rev=276252&view=auto ============================================================================== --- cfe/trunk/test/Frontend/int128.cpp (added) +++ cfe/trunk/test/Frontend/int128.cpp Thu Jul 21 02:44:41 2016 @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -x c -std=gnu99 -dM -E -triple x86_64-pc-linux %s | FileCheck -check-prefix=NO %s +// RUN: %clang_cc1 -x c++ -std=c++11 -dM -E -triple x86_64-pc-linux %s | FileCheck -check-prefix=NO %s +// RUN: %clang_cc1 -x c++ -std=gnu++11 -dM -E -triple i686-pc-linux %s | FileCheck -check-prefix=NO %s +// RUN: %clang_cc1 -x c++ -std=gnu++11 -dM -E -triple x86_64-pc-linux %s | FileCheck -check-prefix=YES %s +// RUN: %clang_cc1 -x c++ -std=gnu++1y -dM -E -triple x86_64-pc-linux %s | FileCheck -check-prefix=YES %s +// PR23156 + +// NO-NOT: __GLIBCXX_TYPE_INT_N_0 +// NO-NOT: __GLIBCXX_BITSIZE_INT_N_0 +// YES-DAG: __GLIBCXX_TYPE_INT_N_0 +// YES-DAG: __GLIBCXX_BITSIZE_INT_N_0 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits