From: Jason Merrill Date: Mon, 9 Jun 2003 22:42:33 +0000 (-0400) Subject: * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR. X-Git-Tag: releases/gcc-3.4.0~6008 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1bfedcc8fbe8a76a23ab8164834a4f52b6b1ac47;p=thirdparty%2Fgcc.git * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR. From-SVN: r67683 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 231dccddbf68..ef0c63289c0a 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 c97213a66e11..1f118e891eb6 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;