aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1996-08-03 23:26:17 -0600
committerJeff Law <law@gcc.gnu.org>1996-08-03 23:26:17 -0600
commit0f47edd345be048d7b7a787dda85306b26c0d510 (patch)
tree36a7c080239c038ed3678699c5466e1ac6fdc576 /gcc
parent292099cc6762633f98b4a8a1ad74f62f5b8cc9f5 (diff)
downloadgcc-0f47edd345be048d7b7a787dda85306b26c0d510.zip
gcc-0f47edd345be048d7b7a787dda85306b26c0d510.tar.gz
gcc-0f47edd345be048d7b7a787dda85306b26c0d510.tar.bz2
combine.c (rtx_equal_for_field_assignment_p): Check for get_last_value returning (CLOBBER (CONST_INT 0)).
* combine.c (rtx_equal_for_field_assignment_p): Check for get_last_value returning (CLOBBER (CONST_INT 0)). From-SVN: r12590
Diffstat (limited to 'gcc')
-rw-r--r--gcc/combine.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 03b8644..796a7c2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6569,9 +6569,15 @@ rtx_equal_for_field_assignment_p (x, y)
last_x = get_last_value (x);
last_y = get_last_value (y);
- return ((last_x != 0 && rtx_equal_for_field_assignment_p (last_x, y))
- || (last_y != 0 && rtx_equal_for_field_assignment_p (x, last_y))
+ return ((last_x != 0
+ && GET_CODE (last_x) != CLOBBER
+ && rtx_equal_for_field_assignment_p (last_x, y))
+ || (last_y != 0
+ && GET_CODE (last_y) != CLOBBER
+ && rtx_equal_for_field_assignment_p (x, last_y))
|| (last_x != 0 && last_y != 0
+ && GET_CODE (last_x) != CLOBBER
+ && GET_CODE (last_y) != CLOBBER
&& rtx_equal_for_field_assignment_p (last_x, last_y)));
}