http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56950



             Bug #: 56950

           Summary: compare-debug failure for gcc.dg/pr41345.c with

                    fschedule-insns

    Classification: Unclassified

           Product: gcc

           Version: 4.9.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: debug

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: ste...@gcc.gnu.org





$ cat pr41345.c 

/* PR bootstrap/41345 */

/* { dg-do compile } */

/* { dg-options "-O2 -g -fcompare-debug" } */

/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */



void

foo (int *x)

{

  int a;

  for (a = 0; a < 2; a++)

    if (x[a])

      goto lab;

  __builtin_unreachable ();

lab:;

}



$ ./xgcc -B. -S -O2 -g -fcompare-debug pr41345.c -fschedule-insns

xgcc: error: pr41345.c: -fcompare-debug failure (length)

$



The problem appears to be an extra NOTE_INSN_DELETED, inserted in

the sched1 pass:



@@ -42,8 +54,11 @@

 ;;  exit block uses     6 [bp] 7 [sp] 20 [frame]

 ;;  regs ever live

 ;;  ref usage  r0={1d} r1={1d} r2={1d} r4={1d} r5={1d} r6={1d,2u} r7={1d,2u}

r16={1d,1u} r20={1d,2u} r21={1d} r22={1d} r23={1d} r24={1d} r25={1d} r26={1d}

r27={1d} r28={1d} r37={1d} r38={1d}

-;;    total ref usage 26{19d,7u,0e} in 0{0 regular + 0 call} insns.

+;;    total ref usage 26{19d,7u,0e} in 1{1 regular + 0 call} insns.

 (note 1 0 4 NOTE_INSN_DELETED)

 (note 4 1 3 2 [bb 2] NOTE_INSN_BASIC_BLOCK)

-(note 3 4 10 2 NOTE_INSN_FUNCTION_BEG)

-(note 10 3 0 ("lab") NOTE_INSN_DELETED_LABEL 2)

+(note 3 4 7 2 NOTE_INSN_FUNCTION_BEG)

+(debug_insn 7 3 18 2 (var_location:SI a (const_int 0 [0])) -1

+     (nil))

+(note 18 7 14 NOTE_INSN_DELETED)

+(note 14 18 0 ("lab") NOTE_INSN_DELETED_LABEL 2)



The note 18 comes from haifa-sched.c:sched_extend_bb.

Reply via email to