From 1bfedcc8fbe8a76a23ab8164834a4f52b6b1ac47 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 9 Jun 2003 18:42:33 -0400 Subject: [PATCH] * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR. From-SVN: r67683 --- gcc/ChangeLog | 4 ++++ gcc/fold-const.c | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 231dccddbf6..ef0c63289c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-06-09 Jason Merrill + + * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR. + 2003-06-19 Osku Salerma * c-format.c (check_format_string, get_constant): New. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index c97213a66e1..1f118e891eb 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2000,9 +2000,19 @@ operand_equal_p (arg0, arg1, only_const) } case 'e': - if (TREE_CODE (arg0) == RTL_EXPR) - return rtx_equal_p (RTL_EXPR_RTL (arg0), RTL_EXPR_RTL (arg1)); - return 0; + switch (TREE_CODE (arg0)) + { + case ADDR_EXPR: + case TRUTH_NOT_EXPR: + return operand_equal_p (TREE_OPERAND (arg0, 0), + TREE_OPERAND (arg1, 0), 0); + + case RTL_EXPR: + return rtx_equal_p (RTL_EXPR_RTL (arg0), RTL_EXPR_RTL (arg1)); + + default: + return 0; + } default: return 0; -- 2.30.2