rewrite_address_base is trying at

  *op = build1 (INDIRECT_REF, TREE_TYPE (*op), with);

to substitute *op

  state_inD.7206_16->savedD.7200[regD.7211_3]

which is of type integer_type 0x4014a3cc char with

  *state_inD.7206_38

where state_inD.7206_38 is of type pointer_type 0x4047b21c
type <record_type 0x40479a8c>.  This obviously results in
a strange INDIRECT_REF typing.

Note that rewrite_use_address() ends up calling rewrite_address_base
with something useful, namely

 (gdb) call debug_tree(op)
  <ssa_name 0x4065e840
      type <pointer_type 0x40157bd0
              type <integer_type 0x4014a3cc char

only in rewrite_address_base we think we rather want to substitute
with with new_name which looks bogous.

Testcase is compiling unwind-dw2.c:__frame_state_for.

Pls help!

Richard.

Reply via email to