[PATCH] Revert HWI printing change

Richard Biener rguenther@suse.de
Wed May 28 14:16:00 GMT 2014


I have reverted the following for now.

Richard.

2014-05-28  Richard Biener  <rguenther@suse.de>

	Revert
	2014-05-28  Richard Biener  <rguenther@suse.de>

	* hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.

Index: gcc/hwint.h
===================================================================
*** gcc/hwint.h.orig	2014-05-26 10:49:23.009339524 +0200
--- gcc/hwint.h	2014-05-26 11:09:43.597255488 +0200
*************** extern char sizeof_long_long_must_be_8[s
*** 109,156 ****
     typedef before using the __asm_fprintf__ format attribute.  */
  typedef HOST_WIDE_INT __gcc_host_wide_int__;
  
- /* Various printf format strings for HOST_WIDE_INT.  */
- 
- #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
- # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT
- # define HOST_WIDE_INT_PRINT_C "L"
-   /* HOST_BITS_PER_WIDE_INT is 64 bits.  */
- # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
-     "0x%" HOST_LONG_FORMAT "x%016" HOST_LONG_FORMAT "x"
- # define HOST_WIDE_INT_PRINT_PADDED_HEX \
-     "%016" HOST_LONG_FORMAT "x"
- #else
- # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT
- # define HOST_WIDE_INT_PRINT_C "LL"
-   /* HOST_BITS_PER_WIDE_INT is 64 bits.  */
- # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
-     "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x"
- # define HOST_WIDE_INT_PRINT_PADDED_HEX \
-     "%016" HOST_LONG_LONG_FORMAT "x"
- #endif /* HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG */
- 
- #define HOST_WIDE_INT_PRINT_DEC "%" HOST_WIDE_INT_PRINT "d"
- #define HOST_WIDE_INT_PRINT_DEC_C HOST_WIDE_INT_PRINT_DEC HOST_WIDE_INT_PRINT_C
- #define HOST_WIDE_INT_PRINT_UNSIGNED "%" HOST_WIDE_INT_PRINT "u"
- #define HOST_WIDE_INT_PRINT_HEX "%#" HOST_WIDE_INT_PRINT "x"
- #define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
- 
  /* Provide C99 <inttypes.h> style format definitions for 64bits.  */
  #ifndef HAVE_INTTYPES_H
  #undef PRId64
! #define PRId64 HOST_WIDE_INT_PRINT "d"
  #undef PRIi64
! #define PRIi64 HOST_WIDE_INT_PRINT "i"
  #undef PRIo64
! #define PRIo64 HOST_WIDE_INT_PRINT "o"
  #undef PRIu64
! #define PRIu64 HOST_WIDE_INT_PRINT "u"
  #undef PRIx64
! #define PRIx64 HOST_WIDE_INT_PRINT "x"
  #undef PRIX64
! #define PRIX64 HOST_WIDE_INT_PRINT "X"
  #endif
  
  /* Define HOST_WIDEST_FAST_INT to the widest integer type supported
     efficiently in hardware.  (That is, the widest integer type that fits
     in a hardware register.)  Normally this is "long" but on some hosts it
--- 75,119 ----
     typedef before using the __asm_fprintf__ format attribute.  */
  typedef HOST_WIDE_INT __gcc_host_wide_int__;
  
  /* Provide C99 <inttypes.h> style format definitions for 64bits.  */
  #ifndef HAVE_INTTYPES_H
+ #if HOST_BITS_PER_LONG == 64
+ # define GCC_PRI64 HOST_LONG_FORMAT
+ #else
+ # define GCC_PRI64 HOST_LONG_LONG_FORMAT
+ #endif
  #undef PRId64
! #define PRId64 GCC_PRI64 "d"
  #undef PRIi64
! #define PRIi64 GCC_PRI64 "i"
  #undef PRIo64
! #define PRIo64 GCC_PRI64 "o"
  #undef PRIu64
! #define PRIu64 GCC_PRI64 "u"
  #undef PRIx64
! #define PRIx64 GCC_PRI64 "x"
  #undef PRIX64
! #define PRIX64 GCC_PRI64 "X"
! #endif
! 
! /* Various printf format strings for HOST_WIDE_INT.  */
! 
! #if HOST_BITS_PER_LONG == 64
! # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT
! # define HOST_WIDE_INT_PRINT_C "L"
! #else
! # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT
! # define HOST_WIDE_INT_PRINT_C "LL"
  #endif
  
+ #define HOST_WIDE_INT_PRINT_DEC "%" PRId64
+ #define HOST_WIDE_INT_PRINT_DEC_C "%" PRId64 HOST_WIDE_INT_PRINT_C
+ #define HOST_WIDE_INT_PRINT_UNSIGNED "%" PRIu64
+ #define HOST_WIDE_INT_PRINT_HEX "%#" PRIx64
+ #define HOST_WIDE_INT_PRINT_HEX_PURE "%" PRIx64
+ #define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%" PRIx64 "%016" PRIx64
+ #define HOST_WIDE_INT_PRINT_PADDED_HEX "%016" PRIx64
+ 
  /* Define HOST_WIDEST_FAST_INT to the widest integer type supported
     efficiently in hardware.  (That is, the widest integer type that fits
     in a hardware register.)  Normally this is "long" but on some hosts it



More information about the Gcc-patches mailing list