On Mon, Sep 22, 2014 at 11:52 AM, Bernd Schmidt <ber...@codesourcery.com> wrote: > On 09/22/2014 11:00 AM, Richard Biener wrote: >>> >>> It seems to me that walk_stmt_load_store_addr_ops is called on >>> bogus input. The function is supposed to be called on GIMPLE >>> stmts and in GIMPLE stmts CONSTRUCTORs may _not_ have >>> conversions in their elements. >>> >>> Please revert if you have applied already. >> >> >> For the testcase I can indeed see >> >> >> <bb 2>: >> pin_3 = {(unsigned int) (long int) &g[16]}; >> >> but that's invalid GIMPLE, unfortunately not caught by out checker. >> >> Please fix the root cause and add checking to verify_gimple_assign_single. > > > Hmm, fix how exactly? What representation do you want for an initializer > where a pointer is cast to an int (or to a different address space, > something that will be possible with patches I'll submit in the near > future)?
For the above _4 = (long int) &g[16]; _5 = (unsigned int) _4; pin_3 = { _5 }; it's GIMPLE after all, not GENERIC. Richard. > > Bernd >