On Sat, Jul 14, 2012 at 1:23 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Sat, Jul 14, 2012 at 11:54 AM, Steven Bosscher <stevenb....@gmail.com> > wrote: >> On Sat, Jul 14, 2012 at 8:49 PM, H.J. Lu <hongjiu...@intel.com> wrote: >>> Hi, >>> >>> Revision 189453: >>> >>> http://gcc.gnu.org/ml/gcc-cvs/2012-07/msg00357.html >>> >>> removes type attribute comparison in gimple_types_compatible_p_1 and >>> caused PR middle-end/53959 and PR bootstrap/53963. This restores type >>> attribute comparison. Tested on Linux/x86-64. OK to install? >>> >>> Thanks. >>> >>> >>> H.J. >>> --- >>> 2012-07-14 H.J. Lu <hongjiu...@intel.com> >>> >>> PR middle-end/53959 >>> PR bootstrap/53963 >>> * gimple.c (gimple_types_compatible_p_1): Restore type attribute >>> comparison. >> >> I think this deserves a bit more understanding of the problem before >> reverting. Which type attributes survive up to this point? >> > > Here they are: > > (gdb) call debug_tree (t1) > <function_type 0x7ffff1affbd0 > type <void_type 0x7ffff19babd0 void VOID > align 8 symtab 0 alias set -1 canonical type 0x7ffff19babd0 > pointer_to_this <pointer_type 0x7ffff19bac78>> > QI > size <integer_cst 0x7ffff19a9ea0 type <integer_type 0x7ffff19ba0a8 > bitsizetype> constant 8> > unit size <integer_cst 0x7ffff19a9ec0 type <integer_type > 0x7ffff19ba000 sizetype> constant 1> > align 8 symtab 0 alias set -1 canonical type 0x7ffff1affbd0 > attributes <tree_list 0x7ffff1b00a00 > purpose <identifier_node 0x7ffff19dfd98 fn spec> > value <tree_list 0x7ffff1b00a28 > value <string_cst 0x7ffff1b01138 constant ".wR">>> > arg-types <tree_list 0x7ffff1b00a50 > value <pointer_type 0x7ffff1aff738 type <record_type > 0x7ffff1aff7e0 __st_parameter_dt> > unsigned DI > size <integer_cst 0x7ffff19a9d20 constant 64> > unit size <integer_cst 0x7ffff19a9d40 constant 8> > align 64 symtab 0 alias set -1 canonical type 0x7ffff1aff738> > chain <tree_list 0x7ffff1b00a78 value <pointer_type 0x7ffff19bac78> > chain <tree_list 0x7ffff1b00aa0 value <integer_type > 0x7ffff19ba5e8 int> > chain <tree_list 0x7ffff19b4708 value <void_type > 0x7ffff19babd0 void>>>>>> > (gdb) call debug_tree (t2) > <function_type 0x7ffff1b052a0 > type <void_type 0x7ffff19babd0 void VOID > align 8 symtab 0 alias set -1 canonical type 0x7ffff19babd0 > pointer_to_this <pointer_type 0x7ffff19bac78>> > QI > size <integer_cst 0x7ffff19a9ea0 type <integer_type 0x7ffff19ba0a8 > bitsizetype> constant 8> > unit size <integer_cst 0x7ffff19a9ec0 type <integer_type > 0x7ffff19ba000 sizetype> constant 1> > align 8 symtab 0 alias set -1 structural equality > attributes <tree_list 0x7ffff1b06258 > purpose <identifier_node 0x7ffff19dfd98 fn spec> > value <tree_list 0x7ffff1b06280 > value <string_cst 0x7ffff1b01288 constant ".wW">>> > arg-types <tree_list 0x7ffff1b00a50 > value <pointer_type 0x7ffff1aff738 type <record_type > 0x7ffff1aff7e0 __st_parameter_dt> > unsigned DI > size <integer_cst 0x7ffff19a9d20 constant 64> > unit size <integer_cst 0x7ffff19a9d40 constant 8> > align 64 symtab 0 alias set -1 canonical type 0x7ffff1aff738> > chain <tree_list 0x7ffff1b00a78 value <pointer_type 0x7ffff19bac78> > chain <tree_list 0x7ffff1b00aa0 value <integer_type > 0x7ffff19ba5e8 int> > chain <tree_list 0x7ffff19b4708 value <void_type > 0x7ffff19babd0 void>>>>>> > (gdb) > > > -- > H.J.
I updated a testcase to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53959 -- H.J.