diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3d5333904a5a..4e4bdbf48962 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 fff621f0261d..97ce8aad1625 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); } }