[PATCH] D51441: Add predefined macro __gnu_linux__ for proper aux-triple
Yaxun Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 29 10:06:57 PDT 2018
yaxunl created this revision.
yaxunl added a reviewer: tra.
Herald added a subscriber: krytarowski.
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.
https://reviews.llvm.org/D51441
Files:
lib/Frontend/InitPreprocessor.cpp
test/Preprocessor/predefined-macros.c
Index: test/Preprocessor/predefined-macros.c
===================================================================
--- test/Preprocessor/predefined-macros.c
+++ test/Preprocessor/predefined-macros.c
@@ -183,9 +183,11 @@
// 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-gnu -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
Index: lib/Frontend/InitPreprocessor.cpp
===================================================================
--- lib/Frontend/InitPreprocessor.cpp
+++ lib/Frontend/InitPreprocessor.cpp
@@ -1123,6 +1123,8 @@
if (AuxTriple.getOS() == llvm::Triple::Linux) {
Builder.defineMacro("__ELF__");
Builder.defineMacro("__linux__");
+ if (AuxTriple.getEnvironment() == llvm::Triple::GNU)
+ 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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51441.163129.patch
Type: text/x-patch
Size: 1346 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180829/93a125e9/attachment.bin>
More information about the cfe-commits
mailing list