This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Define _LLP64 for appropriate targets


The attached patch makes gcc to define _LLP64 and __LLP64__ for
targets such as _WIN64.  This would make life easier especially
for the testsuite where there is the check_effective_target_llp64
for target requirements but no cpp predefined macro for typedefs,
etc.  OK for mainline (and 4.4 branch)?
(I don't have svn access.)
(also attaching the patch in case gmail mangles whitespace.)


2009-08-19  Ozkan Sezer  <sezeroz@gmail.com>

	* c-cppbuiltin.c: Define LLP64 builtins for LLP64 targets such as
	_WIN64.
	* * doc/cpp.texi (Common Predefined Macros): Document __LLP64__ and
	_LLP64.


--- gcc/c-cppbuiltin.c~	2009-01-18 18:26:26.000000000 +0200
+++ gcc/c-cppbuiltin.c	2009-08-19 10:05:02.000000000 +0300
@@ -629,6 +629,15 @@ c_cpp_builtins (cpp_reader *pfile)
       cpp_define (pfile, "__LP64__");
     }

+  /* Definitions for LLP64 model.  */
+  if (TYPE_PRECISION (long_integer_type_node) == 32
+      && POINTER_SIZE == 64
+      && TYPE_PRECISION (integer_type_node) == 32)
+    {
+      cpp_define (pfile, "_LLP64");
+      cpp_define (pfile, "__LLP64__");
+    }
+
   /* Other target-independent built-ins determined by command-line
      options.  */
   if (optimize_size)
--- gcc/doc/cpp.texi~	2008-08-05 20:24:37.000000000 +0300
+++ gcc/doc/cpp.texi	2009-08-19 10:03:23.000000000 +0300
@@ -2212,6 +2212,12 @@ These macros are defined, with value 1,
 is for a target where @code{long int} and pointer both use 64-bits and
 @code{int} uses 32-bit.

+@item __LLP64__
+@itemx _LLP64
+These macros are defined, with value 1, if (and only if) the compilation
+is for a target where pointer use 64-bits and @code{int} and @code{long int}
+both use 32-bit.
+
 @item __SSP__
 This macro is defined, with value 1, when @option{-fstack-protector} is in
 use.

Attachment: LLP64.diff
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]