Hello,

this fixes the following testsuite regression on spu-elf:
FAIL: g++.dg/torture/pr57499.C  -O1  (internal compiler error)

which was caused by a code path in pad_bb that would simply crash
if the very last active insn in a function happened to be a
"blockage".

Tested on spu-elf, committed to mainline.

Bye,
Ulrich


ChangeLog:

        * config/spu/spu.c (pad_bb): Do not crash when the last
        insn is CODE_FOR_blockage.

Index: gcc/config/spu/spu.c
===================================================================
*** gcc/config/spu/spu.c        (revision 208964)
--- gcc/config/spu/spu.c        (working copy)
*************** pad_bb(void)
*** 2064,2070 ****
            }
          hbr_insn = insn;
        }
!       if (INSN_CODE (insn) == CODE_FOR_blockage)
        {
          if (GET_MODE (insn) == TImode)
            PUT_MODE (next_insn, TImode);
--- 2064,2070 ----
            }
          hbr_insn = insn;
        }
!       if (INSN_CODE (insn) == CODE_FOR_blockage && next_insn)
        {
          if (GET_MODE (insn) == TImode)
            PUT_MODE (next_insn, TImode);
-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  ulrich.weig...@de.ibm.com

Reply via email to