Dave confirmed that a patch like the following fixes the
inconsistency in printing double-ints that fit 64bits on
HWI32 hosts vs. HWI64 hosts.  When the host has a 64bit
type, that is.

Bootstrap running on x86_64-unknown-linux-gnu.

Dave, did testing on hppa2.0w-hp-hpux11.11 show any testsuite
fallout?

Thanks,
Richard.

2014-04-08  Richard Biener  <rguent...@suse.de>

        PR middle-end/60706
        * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
        a 64bit widest int print double-int similar to on HWI64 hosts.

Index: gcc/tree-pretty-print.c
===================================================================
--- gcc/tree-pretty-print.c     (revision 209210)
+++ gcc/tree-pretty-print.c     (working copy)
@@ -3465,6 +3467,12 @@ pp_double_int (pretty_printer *pp, doubl
     pp_wide_integer (pp, d.low);
   else if (d.fits_uhwi ())
     pp_unsigned_wide_integer (pp, d.low);
+  else if (HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT)
+    pp_scalar (pp,
+              uns
+              ? HOST_WIDEST_INT_PRINT_UNSIGNED : HOST_WIDEST_INT_PRINT_DEC,
+              (HOST_WIDEST_INT) ((((unsigned HOST_WIDEST_INT) d.high << 1)
+                                  << (HOST_BITS_PER_WIDE_INT - 1)) | d.low));
   else
     {
       unsigned HOST_WIDE_INT low = d.low;

Reply via email to