> Index: gcc/ChangeLog
> 
> 2012-09-04  Lawrence Crowl  <cr...@google.com>
> 
>           * double-int.h (double_int::operator &=): New.
>           (double_int::operator ^=): New.
>           (double_int::operator |=): New.
>           (double_int::mul_with_sign): Modify overflow parameter to bool*.
>           (double_int::add_with_sign): New.
>           (double_int::ule): New.
>           (double_int::sle): New.
>           (binary double_int::operator *): Remove parameter name.
>           (binary double_int::operator +): Likewise.
>           (binary double_int::operator -): Likewise.
>           (binary double_int::operator &): Likewise.
>           (double_int::operator |): Likewise.
>           (double_int::operator ^): Likewise.
>           (double_int::and_not): Likewise.
>           (double_int::from_shwi): Tidy formatting.
>           (double_int::from_uhwi): Likewise.
>           (double_int::from_uhwi): Likewise.
>           * double-int.c (double_int::mul_with_sign): Modify overflow 
> parameter
>           to bool*.
>           (double_int::add_with_sign): New.
>           (double_int::ule): New.
>           (double_int::sle): New.
>           * builtins.c: Modify to use the new double_int interface.
>           * cgraph.c: Likewise.
>           * combine.c: Likewise.
>           * dwarf2out.c: Likewise.
>           * emit-rtl.c: Likewise.
>           * expmed.c: Likewise.
>           * expr.c: Likewise.
>           * fixed-value.c: Likewise.
>           * fold-const.c: Likewise.
>           * gimple-fold.c: Likewise.
>           * gimple-ssa-strength-reduction.c: Likewise.
>           * gimplify-rtx.c: Likewise.
>           * ipa-prop.c: Likewise.
>           * loop-iv.c: Likewise.
>           * optabs.c: Likewise.
>           * stor-layout.c: Likewise.
>           * tree-affine.c: Likewise.
>           * tree-cfg.c: Likewise.
>           * tree-dfa.c: Likewise.
>           * tree-flow-inline.h: Likewise.
>           * tree-object-size.c: Likewise.
>           * tree-predcom.c: Likewise.
>           * tree-pretty-print.c: Likewise.
>           * tree-sra.c: Likewise.
>           * tree-ssa-address.c: Likewise.
>           * tree-ssa-alias.c: Likewise.
>           * tree-ssa-ccp.c: Likewise.
>           * tree-ssa-forwprop.c: Likewise.
>           * tree-ssa-loop-ivopts.c: Likewise.
>           * tree-ssa-loop-niter.c: Likewise.
>           * tree-ssa-phiopt.c: Likewise.
>           * tree-ssa-pre.c: Likewise.
>           * tree-ssa-sccvn: Likewise.
>           * tree-ssa-structalias.c: Likewise.
>           * tree-ssa.c: Likewise.
>           * tree-switch-conversion.c: Likewise.
>           * tree-vect-loop-manip.c: Likewise.
>           * tree-vrp.c: Likewise.
>           * tree.h: Likewise.
>           * tree.c: Likewise.
>           * varasm.c: Likewise.

I fear this has broken hppa.  Bootstrap on OpenBSD/hppa now fails with:


In file included from ../../../src/gcc/gcc/mcf.c:47:0:
../../../src/gcc/gcc/mcf.c: In function 'void dump_fixup_edge(FILE*, 
fixup_graph_type*, fixup_edge_p)':
../../../src/gcc/gcc/system.h:288:78: error: integer overflow in expression 
[-Werror=overflow]
                              ? ~ (t) 0 << (sizeof(t) * CHAR_BIT - 1) : (t) 0))
                                                                              ^
../../../src/gcc/gcc/system.h:289:44: note: in expansion of macro 
'INTTYPE_MINIMUM'
 #define INTTYPE_MAXIMUM(t) ((t) (~ (t) 0 - INTTYPE_MINIMUM (t)))
                                            ^
../../../src/gcc/gcc/mcf.c:55:22: note: in expansion of macro 'INTTYPE_MAXIMUM'
 #define CAP_INFINITY INTTYPE_MAXIMUM (HOST_WIDEST_INT)
                      ^
../../../src/gcc/gcc/mcf.c:211:34: note: in expansion of macro 'CAP_INFINITY'
       if (fedge->max_capacity == CAP_INFINITY)
                                  ^

Something must be wrong with the overflow detection logic in the new
double_int interfaces.  I suspect this is because for hppa
HOST_WIDE_INT is 32 bits wide, since on i386 and x86_64 I don't hit this.

Reply via email to