------- Additional Comments From rguenth at gcc dot gnu dot org 2005-05-14 16:48 ------- actually trees look like
3845 ret = gimplify_modify_expr (expr_p, pre_p, post_p, Value returned is $3 = GS_ALL_DONE (gdb) call debug_tree(*expr_p) <modify_expr 0x401481d4 type <pointer_type 0x40156bd0 type <integer_type 0x401493cc char public QI size <integer_cst 0x40141210 constant invariant 8> unit size <integer_cst 0x40141228 constant invariant 1> align 8 symtab 0 alias set -1 precision 8 min <integer_cst 0x40141270 -128> max <integer_cst 0x401412d0 127> pointer_to_this <pointer_type 0x40156bd0>> unsigned SI size <integer_cst 0x40141408 constant invariant 32> unit size <integer_cst 0x40141198 constant invariant 4> align 32 symtab 0 alias set -1> side-effects arg 0 <var_decl 0x401be6c0 D.1238 type <pointer_type 0x40156bd0> used unsigned ignored SI file 20031215-1.c line 12 size <integer_cst 0x40141408 32> unit size <integer_cst 0x40141198 4> align 32 context <function_decl 0x401be438 test1>> arg 1 <plus_expr 0x4014818c type <pointer_type 0x40156bd0> constant invariant arg 0 <addr_expr 0x40146400 type <pointer_type 0x4015821c> constant invariant arg 0 <array_ref 0x401b91d4 type <integer_type 0x401581b0 char> arg 0 <component_ref 0x4014e078 type <array_type 0x401b7e58> readonly arg 0 <var_decl 0x401be0d8 ao> arg 1 <field_decl 0x401b7ec4 ch>> arg 1 <integer_cst 0x401411b0 constant invariant 0> arg 2 <integer_cst 0x401411b0 0> arg 3 <integer_cst 0x40141228 1>>> arg 1 <integer_cst 0x40141d50 constant invariant 2>> 20031215-1.c:12> which is mismatched types for the PLUS_EXPR. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21541