------- 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