CSE bug: Internal compiler error in `mark_jump_label'

Greg McGary gkm@eng.ascend.com
Wed Dec 22 14:27:00 GMT 1999


This is an adaptation of gcc.c-torture/compile/labels-1.c that
simulates the effect of -fbounded-pointers:

struct bp { void *v, *b, *e; };
f ()
{
  struct bp x = { &&L2 };
  if (&&L3 - &&L1 > 1)
    abort ();
L1:return 1;
L2:abort ();
L3:;
}

It compiles fine with 2.95, but has failed with 2.96 for at least a
couple of months.

With the broken 2.96, this succeeds:
  gcc -O1 -c labels-1.c
but this fails:
  gcc -O1 -c -fgcse -frerun-cse-after-loop labels-1.c

Here's the diagnostic:

labels-1.c: In function `f':
labels-1.c:10: Internal compiler error in `mark_jump_label', at jump.c:3965

mark_jump_label expects to see LABEL_REF refer to a CODE_LABEL, but
instead chokes on this:

	(label_ref:SI (note 37 34 38 "" NOTE_INSN_DELETED_LABEL))

Greg


More information about the Gcc-bugs mailing list