[PATCH] i386: Define __ILP32__ and _ILP32 for all 32-bit targets
Gerald Pfeifer
gerald@pfeifer.com
Thu May 7 22:58:43 GMT 2020
A user reported that gcc -m32 on x86-64 does not define __ILP32__
and I found the same on i686 (with gcc -x c -dM -E /dev/null).
The code has
if (TARGET_X32)
{
cpp_define (parse_in, "_ILP32");
cpp_define (parse_in, "__ILP32__");
}
so -mx32 does define __ILP32__.
This patch does the same for all "regular" 32-bit x86 targets.
Tested on i386-unknown-freebsd11.3 so far.
Okay?
Gerald
* config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
__ILP32__ for 32-bit targets.
---
gcc/config/i386/i386-c.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c
index b46ebb289d2..891b2c68372 100644
--- a/gcc/config/i386/i386-c.c
+++ b/gcc/config/i386/i386-c.c
@@ -701,6 +701,8 @@ ix86_target_macros (void)
cpp_assert (parse_in, "cpu=i386");
cpp_assert (parse_in, "machine=i386");
builtin_define_std ("i386");
+ cpp_define (parse_in, "_ILP32");
+ cpp_define (parse_in, "__ILP32__");
}
if (!TARGET_80387)
--
2.26.2
More information about the Gcc-patches
mailing list