------- Comment #6 from ebotcazou at gcc dot gnu dot org 2009-12-05 12:39 ------- The problem is that the comparison of types is not anti-symmetrical:
(gdb) call compare_access_positions(&access_vec->base.vec[2], &access_vec->base.vec[3]) $37 = 1 (gdb) call compare_access_positions(&access_vec->base.vec[3], &access_vec->base.vec[2]) $38 = 1 (gdb) call compare_access_positions(&access_vec->base.vec[2], &access_vec->base.vec[2]) $39 = 1 (gdb) p debug_tree(access_vec->base.vec[2]->type) <integer_type ff1059e0 SItype sizes-gimplified SI size <integer_cst ff008860 type <integer_type ff024060 bit_size_type> constant 32> unit size <integer_cst ff008600 type <integer_type ff024000 unsigned int> constant 4> align 32 symtab 0 alias set -1 canonical type ff0242a0 precision 32 min <integer_cst ff008800 -2147483648> max <integer_cst ff008820 2147483647>> (gdb) p debug_tree(access_vec->base.vec[3]->type) <integer_type ff1059e0 SItype sizes-gimplified SI size <integer_cst ff008860 type <integer_type ff024060 bit_size_type> constant 32> unit size <integer_cst ff008600 type <integer_type ff024000 unsigned int> constant 4> align 32 symtab 0 alias set -1 canonical type ff0242a0 precision 32 min <integer_cst ff008800 -2147483648> max <integer_cst ff008820 2147483647>> -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2009-12-05 12:39:08 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42157