https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78626

            Bug ID: 78626
           Summary: [7 Regression] ICE in rtl_verify_bb_insns, at
                    cfgrtl.c:2656 (error: flow control insn inside a basic
                    block)
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: powerpc-*-linux-gnu*

gcc-7.0.0-alpha20161127 snapshot ICEs when compiling the following reduced
snippet for 32-bit BE powerpc w/ -Os:

int qs;

void
ms (int g1)
{
  int cy;
  int *fr = &cy;

  for (;;)
    {
      *fr = 1;
      fr = &g1;

      while (qs != 0)
        {
          if (qs | cy)
            qs = g1 / 0;
          ++qs;
        }

      cy = 1;
      while (cy != 0)
        cy = 2;
    }
}

% powerpc-e300c3-linux-gnu-gcc-7.0.0-alpha20161127 -Os -w -c mfzov3v7.c
mfzov3v7.c: In function 'ms':
mfzov3v7.c:25:1: error: in basic block 3:
 }
 ^
mfzov3v7.c:25:1: error: flow control insn inside a basic block
(insn 58 19 25 3 (trap_if (const_int 1 [0x1])
        (const_int 0 [0])) 823 {trap}
     (nil))
mfzov3v7.c:25:1: internal compiler error: in rtl_verify_bb_insns, at
cfgrtl.c:2656
0x2edfb398605 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20161127/work/gcc-7-20161127/gcc/rtl-error.c:108
0x2edfaf5fe87 rtl_verify_bb_insns
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20161127/work/gcc-7-20161127/gcc/cfgrtl.c:2656
0x2edfaf5fe87 rtl_verify_flow_info_1
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20161127/work/gcc-7-20161127/gcc/cfgrtl.c:2742
0x2edfaf4c08d verify_flow_info()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20161127/work/gcc-7-20161127/gcc/cfghooks.c:258
0x2edfb322eb1 execute_function_todo
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20161127/work/gcc-7-20161127/gcc/passes.c:1977
0x2edfb323cfb execute_todo
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20161127/work/gcc-7-20161127/gcc/passes.c:2015

Applying r242947 and (or) r243028 doesn't fix it.

Reply via email to