From 7b2b3f1f705c1ea27e9b2ccee7e5f369a0f32b44 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 29 Oct 1992 17:30:41 -0500 Subject: [PATCH] (output_constant_pool): Labels can be deleted by being turned into NOTEs, not just have INSN_DELETED_P. From-SVN: r2653 --- gcc/varasm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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. */ -- 2.30.2