On Nov 14, 2012, Jakub Jelinek <ja...@redhat.com> wrote: > Steven has been complaining for some years that var-tracking inserts > NOTE_INSN_VAR_LOCATION (and NOTE_INSN_CALL_ARG_LOCATION) notes sometimes > in between basic blocks, but with BLOCK_FOR_INSN set (or sometimes extends > a bb ending originally with a noreturn or throwing call by a note or more > after it). Fixed thusly, bootstrapped/regtested on x86_64-linux and > i686-linux, ok for trunk?
This is ok with me, although I'm thinking it might make more sense to consolidate the rules to decide whether or not to add basic block info to a note in add_insn_{before,after}, where this added in the first place. Ideally we'd use the same rules used by cfg to determine where the block boundaries are, i.e., what kinds of notes can be at BB boundaries and which are outside BBs. (Incidentally, it looks like add_insn_after, unlike add_insn_before, completely ignores and overwrites the bb it is passed as an argument; this seems wrong) -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist Red Hat Brazil Compiler Engineer