]> granicus.if.org Git - clang/commitdiff
Add predefined macro __gnu_linux__ for proper aux-triple
authorYaxun Liu <Yaxun.Liu@amd.com>
Wed, 29 Aug 2018 20:39:22 +0000 (20:39 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Wed, 29 Aug 2018 20:39:22 +0000 (20:39 +0000)
Clang predefine macro __linx__ for aux-triple with Linux OS
but does not predefine macro __gnu_linux__. This causes
some compilation error for certain applications, e.g. Eigen.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D51441

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@340967 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/InitPreprocessor.cpp
test/Preprocessor/predefined-macros.c

index 01a74d12902d2fd585297269d5d3d20a06d4e86d..3a488bb853787abdfba5b85bb018fdd24e7a3a8e 100644 (file)
@@ -1128,6 +1128,7 @@ static void InitializePredefinedAuxMacros(const TargetInfo &AuxTI,
   if (AuxTriple.getOS() == llvm::Triple::Linux) {
     Builder.defineMacro("__ELF__");
     Builder.defineMacro("__linux__");
+    Builder.defineMacro("__gnu_linux__");
     // Used in features.h. If this is omitted, math.h doesn't declare float
     // versions of the functions in bits/mathcalls.h.
     if (LangOpts.CPlusPlus)
index 9296b1cf5a50d7ca15a33b81bff2c87e97730b2e..71c3166689ecafc41c6a5b5412ecebb4f4208c0e 100644 (file)
 // CHECK-HIP: #define __HIP__ 1
 
 // RUN: %clang_cc1 %s -E -dM -o - -x hip -triple amdgcn-amd-amdhsa \
-// RUN:   -fcuda-is-device \
+// RUN:   -aux-triple x86_64-unknown-linux -fcuda-is-device \
 // RUN:   | FileCheck -match-full-lines %s --check-prefix=CHECK-HIP-DEV
 // CHECK-HIP-DEV-NOT: #define __CUDA_ARCH__
 // CHECK-HIP-DEV: #define __HIPCC__ 1
 // CHECK-HIP-DEV: #define __HIP_DEVICE_COMPILE__ 1
 // CHECK-HIP-DEV: #define __HIP__ 1
+// CHECK_HIP-DEV: #define __linux__ 1
+// CHECK_HIP-DEV: #define __gnu_linux__ 1