On Mon, Oct 29, 2012 at 2:51 PM, Michael Matz <m...@suse.de> wrote: > Hi, > > On Fri, 26 Oct 2012, Dehao Chen wrote: > >> 1. abandon the changes in cfgexpand.c > > Well, you merely moved the bogus code to gimple-low.c. It is bogus > because you unconditionally overwrite TREE_BLOCK of all operands (and all > operands operands) with the statements block. I assume the unit-test you > added shows the problem you were trying to fix? > > From the scan-assembler-no directive I'm not really sure what exactly the > problem is you're seeing. Can you try to describe it with words for the > example code? Which operands has no tree-block where it should have one, > or which one has the wrong tree-block?
trees without block could be an issue when we extract them to some other statement (then without block), and move that to some random place. But the only issue should be that the stmt/expressions effective block becomes a different one (the currently "active" one during expansion). I don't see how we could end up generating too many block location DIEs because of this. Does the issue vanish when using -fno-tree-ter? And yes, I agree, the patch looks bogus. Richard. > > Ciao, > Michael.