Chung-Lin Tang <clt...@codesourcery.com> wrote: > This patch fixes a case in sh.c:find_barrier(), triggered by a testcase > in glibc. The scanning starts from a GOT move instruction, records > itself in 'last_got', but does not find a second GOT move (to reset > last_got to NULL). > > It finishes by trying to insert a new barrier in the insn stream, sees > last_got != NULL, and tries to insert at PREV_INSN(last_got), which goes > above the original start insn. > > The caller, sh_reorg(), then gets the barrier scan target above the orig > insn, tries (in vain) to find it using a forward scan, and segfaults > when it goes past the insn stream... > > The attached patch adds an additional equality check, plus some comment > updates. Cross-tested without regressions, is this okay for trunk?
OK. Thanks for catching this! Regards, kaz