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

            Bug ID: 69175
           Summary: [6 Regression] ICE in haifa_luid_for_non_insn, at
                    haifa-sched.c:7895
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org
  Target Milestone: ---

trunk r232077, arm-linux-gnueabihf, works with -O1

reduced test case:

struct A {
  A *moreRU, *lessRU;
} a;
class B {
  A *mostRU;
  A *leastRU;
  void m_fn1();
};
void *b;
void B::m_fn1() {
  if (b) {
    A *n = (A *)b;
    if (b == mostRU)
      if (n == leastRU)
        mostRU = __null;
      else
        mostRU->moreRU = __null;
    else
      n->lessRU->moreRU = &a;
    n->lessRU = mostRU;
    if (mostRU == __null)
      mostRU = leastRU = n;
    else
      mostRU = n;
  }
}

$ g++ -c -g -O2 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -mthumb data.ii
data.ii: In member function 'void B::m_fn1()':
data.ii:26:1: internal compiler error: in haifa_luid_for_non_insn, at
haifa-sched.c:7895
 }
 ^

0x8600e5 haifa_luid_for_non_insn
        ../../src/gcc/haifa-sched.c:7895
0x864ccb sched_init_insn_luid(rtx_insn*)
        ../../src/gcc/haifa-sched.c:9037
0x8650d3 sched_init_luids(vec<basic_block_def*, va_heap, vl_ptr>)
        ../../src/gcc/haifa-sched.c:9066
0x8652a1 haifa_sched_init()
        ../../src/gcc/haifa-sched.c:7427
0x4a880f schedule_insns()
        ../../src/gcc/sched-rgn.c:3504
0x4a8d6f schedule_insns()
        ../../src/gcc/sched-rgn.c:3498
0x4a8d6f rest_of_handle_sched2
        ../../src/gcc/sched-rgn.c:3737
0x4a8d6f execute
        ../../src/gcc/sched-rgn.c:3873
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.

Reply via email to