From 7e657ec235f32af78f39a1c710737cc6191b0bde Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 20 Jun 2007 22:26:07 +0200 Subject: [PATCH] df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. From-SVN: r125894 --- gcc/ChangeLog | 4 ++++ gcc/df-scan.c | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3d5333904a5..4e4bdbf4896 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-06-20 Eric Botcazou + + * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. + 2007-06-20 Rask Ingemann Lambertsen PR target/32335 diff --git a/gcc/df-scan.c b/gcc/df-scan.c index fff621f0261..97ce8aad162 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -3081,9 +3081,16 @@ df_get_call_refs (struct df_collection_rec * collection_rec, DF_REF_REG_USE, bb, insn, flags); else if (GET_CODE (XEXP (note, 0)) == CLOBBER) { - unsigned int regno = REGNO (XEXP (XEXP (note, 0), 0)); - if (!bitmap_bit_p (defs_generated, regno)) - df_defs_record (collection_rec, XEXP (note, 0), bb, insn, flags); + if (REG_P (XEXP (XEXP (note, 0), 0))) + { + unsigned int regno = REGNO (XEXP (XEXP (note, 0), 0)); + if (!bitmap_bit_p (defs_generated, regno)) + df_defs_record (collection_rec, XEXP (note, 0), bb, + insn, flags); + } + else + df_uses_record (collection_rec, &XEXP (note, 0), + DF_REF_REG_USE, bb, insn, flags); } } -- 2.30.2