From 6ba14f92807c0c891fab185531fbea57b3bf298f Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Sun, 14 Feb 1999 23:44:39 +0000 Subject: [PATCH] alias.c (init_alias_analysis): Avoid self-referential value when setting reg_known_value from REG_EQUAL notes. * alias.c (init_alias_analysis): Avoid self-referential value when setting reg_known_value from REG_EQUAL notes. From-SVN: r25211 --- gcc/ChangeLog | 5 +++++ gcc/alias.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 16b3998716d..e572ee3f80f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Feb 15 00:40:45 1999 J"orn Rennecke + + * alias.c (init_alias_analysis): Avoid self-referential value + when setting reg_known_value from REG_EQUAL notes. + Sun Feb 14 23:12:10 1999 Richard Henderson * i386.c (legitimate_address_p): Verify modes of base and index. diff --git a/gcc/alias.c b/gcc/alias.c index 876b3efbae4..eae57c763a1 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -1465,7 +1465,8 @@ init_alias_analysis () && (((note = find_reg_note (insn, REG_EQUAL, 0)) != 0 && REG_N_SETS (REGNO (SET_DEST (set))) == 1) || (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != 0) - && GET_CODE (XEXP (note, 0)) != EXPR_LIST) + && GET_CODE (XEXP (note, 0)) != EXPR_LIST + && ! reg_overlap_mentioned_p (SET_DEST (set), XEXP (note, 0))) { int regno = REGNO (SET_DEST (set)); reg_known_value[regno] = XEXP (note, 0); -- 2.30.2