01e27f8
2000-10-20  Jason Merrill  <jason@redhat.com>
01e27f8
01e27f8
	* error.c (dump_expr): Use host_integerp.
01e27f8
01e27f8
2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
01e27f8
01e27f8
	* error.c (dump_expr): Correctly negate integer constant.
01e27f8
01e27f8
--- gcc/cp/error.c.jj	Mon Jul 10 09:43:58 2000
01e27f8
+++ gcc/cp/error.c	Wed Nov 29 15:01:13 2000
01e27f8
@@ -1485,16 +1485,16 @@ dump_expr (t, flags)
01e27f8
 	    dump_char (tree_low_cst (t, 0));
01e27f8
 	    OB_PUTC ('\'');
01e27f8
 	  }
01e27f8
-	else if ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (t)
01e27f8
-		 != (TREE_INT_CST_LOW (t) >> (HOST_BITS_PER_WIDE_INT - 1)))
01e27f8
+	else if (! host_integerp (t, 0))
01e27f8
 	  {
01e27f8
 	    tree val = t;
01e27f8
 
01e27f8
 	    if (tree_int_cst_sgn (val) < 0)
01e27f8
 	      {
01e27f8
 		OB_PUTC ('-');
01e27f8
-		val = build_int_2 (~TREE_INT_CST_LOW (val),
01e27f8
-				   -TREE_INT_CST_HIGH (val));
01e27f8
+		val = build_int_2 (-TREE_INT_CST_LOW (val),
01e27f8
+				   ~TREE_INT_CST_HIGH (val)
01e27f8
+				   + !TREE_INT_CST_LOW (val));
01e27f8
 	      }
01e27f8
 	    /* Would "%x%0*x" or "%x%*0x" get zero-padding on all
01e27f8
 	       systems?  */