This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

CSE bug: Internal compiler error in `mark_jump_label'


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]