This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Bogous trees in ivopts again!


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]