Hi, On Fri, 2 Dec 2011, Richard Guenther wrote:
> > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > > > > 2011-12-01 Jakub Jelinek <ja...@redhat.com> > > > > PR debug/50317 > > * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing > > as unnecessary a store to a variable with gimple reg type. > > * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit > > on local unreferenced variables. > > This change seems wrong. We are turning valid gimple > > # DEBUG D#2 => transfer.0 [with addres taken] > > into invalid one > > # DEBUG D#2 => transfer.0 [without address taken] Why would it be invalid? It's meaningful to talk about a full object and references to it even without having its address taken. Normal loads/stores do the same. > once you update that stmt with update_stmt you'll get an SSA operand > for transfer.0 That's the thing which should be fixed then. > Why do this in remove_unused_locals and not in update_address_taken? Another walk over all statements just for this? Meh. > Or, why do it at all? The debug machinery seems to be unhappy about variables that are address taken. > I have a SSA operand checking patch that catches this now ... Ciao, Michael.