diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-11-15 19:13:36 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-11-15 19:13:36 +0000 |
commit | dca22496bb4a1aab81d4f0235cbd8851928879f4 (patch) | |
tree | 5c897371a6772598c31ce6b328785b2eb9d812c2 /gcc/machmode.h | |
parent | 53d3f913ab3435bfad66613c42f31bb7d735f704 (diff) | |
download | gcc-dca22496bb4a1aab81d4f0235cbd8851928879f4.tar.gz |
(HOST_PTR_PRINTF): Handle char * wider than long.
(HOST_WIDE_INT_PRINT_{DEC,UNSIGNED,HEX,DOUBLE_HEX}): New macros.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13173 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/machmode.h')
-rw-r--r-- | gcc/machmode.h | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/gcc/machmode.h b/gcc/machmode.h index 927e29d0cd9..f1f146f2ecf 100644 --- a/gcc/machmode.h +++ b/gcc/machmode.h @@ -53,7 +53,72 @@ Boston, MA 02111-1307, USA. */ /* Provide a default way to print an address in hex via printf. */ #ifndef HOST_PTR_PRINTF -#define HOST_PTR_PRINTF sizeof (int) == sizeof (char *) ? "%x" : "%lx" +#define HOST_PTR_PRINTF \ + (sizeof (int) == sizeof (char *) ? "%x" \ + : sizeof (long) == sizeof (char *) ? "%lx" : "%llx") +#endif + +/* Provide defaults for the way to print a HOST_WIDE_INT + in various manners. */ + +#ifndef HOST_WIDE_INT_PRINT_DEC +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT +#define HOST_WIDE_INT_PRINT_DEC "%d" +#else +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG +#define HOST_WIDE_INT_PRINT_DEC "%ld" +#else +#define HOST_WIDE_INT_PRINT_DEC "%lld" +#endif +#endif +#endif + +#ifndef HOST_WIDE_INT_PRINT_UNSIGNED +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT +#define HOST_WIDE_INT_PRINT_UNSIGNED "%u" +#else +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG +#define HOST_WIDE_INT_PRINT_UNSIGNED "%lu" +#else +#define HOST_WIDE_INT_PRINT_UNSIGNED "%llu" +#endif +#endif +#endif + +#ifndef HOST_WIDE_INT_PRINT_HEX +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT +#define HOST_WIDE_INT_PRINT_HEX "0x%x" +#else +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG +#define HOST_WIDE_INT_PRINT_HEX "0x%lx" +#else +#define HOST_WIDE_INT_PRINT_HEX "0x%llx" +#endif +#endif +#endif + +#ifndef HOST_WIDE_INT_PRINT_DOUBLE_HEX +#if HOST_BITS_PER_WIDE_INT == 64 +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT +#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%x%016x" +#else +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG +#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%016lx" +#else +#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%016llx" +#endif +#endif +#else +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT +#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%x%08x" +#else +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG +#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx" +#else +#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%08llx" +#endif +#endif +#endif #endif /* Make an enum class that gives all the machine modes. */ |