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.