From: Richard Kenner Date: Thu, 29 Oct 1992 22:30:41 +0000 (-0500) Subject: (output_constant_pool): Labels can be deleted by being turned into X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7b2b3f1f705c1ea27e9b2ccee7e5f369a0f32b44;p=gcc.git (output_constant_pool): Labels can be deleted by being turned into NOTEs, not just have INSN_DELETED_P. From-SVN: r2653 --- diff --git a/gcc/varasm.c b/gcc/varasm.c index e5d757cde4d..0df6d01a3a0 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -2494,11 +2494,15 @@ output_constant_pool (fnname, fndecl) /* See if X is a LABEL_REF (or a CONST referring to a LABEL_REF) whose CODE_LABEL has been deleted. This can occur if a jump table is eliminated by optimization. If so, write a constant of zero - instead. */ - if ((GET_CODE (x) == LABEL_REF && INSN_DELETED_P (XEXP (x, 0))) + instead. Note that this can also happen by turning the + CODE_LABEL into a NOTE. */ + if (((GET_CODE (x) == LABEL_REF + && (INSN_DELETED_P (XEXP (x, 0)) + || GET_CODE (XEXP (x, 0)) == NOTE))) || (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS && GET_CODE (XEXP (XEXP (x, 0), 0)) == LABEL_REF - && INSN_DELETED_P (XEXP (XEXP (XEXP (x, 0), 0), 0)))) + && (INSN_DELETED_P (XEXP (XEXP (XEXP (x, 0), 0), 0)) + || GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == NOTE))) x = const0_rtx; /* First switch to correct section. */