diff --git a/gcc/flow.c b/gcc/flow.c index 66f0d65d19c..9d83e413a77 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -538,8 +538,11 @@ find_basic_blocks (f, nonlocal_label_list) { rtx x; for (x = nonlocal_label_list; x; x = XEXP (x, 1)) - mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)), - insn, 0); + /* Don't try marking labels that + were deleted as unreferenced. */ + if (GET_CODE (XEXP (x, 0)) == CODE_LABEL) + mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)), + insn, 0); /* ??? This could be made smarter: in some cases it's possible to tell that certain calls will not do a nonlocal goto.