The following fixes PR67053 by more closely mirror what fold_binary()s
STRIP_NOPS does to avoid the C++ FE constexpr code to regress.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

Yes, I'm thinking on an automated way to more closely mirror
STRIP_[SIGN_]NOPS behavior (on toplevel args).

Richard.

2015-07-29  Richard Biener  <rguent...@suse.de>

        PR middle-end/67053
        * match.pd: Allow both operands to independently have conversion
        when simplifying compares of addresses.

Index: gcc/match.pd
===================================================================
--- gcc/match.pd        (revision 226345)
+++ gcc/match.pd        (working copy)
@@ -1814,7 +1814,7 @@ (define_operator_list CBRT BUILT_IN_CBRT
    enough to make fold_stmt not regress when not dispatching to fold_binary.  
*/
 (for cmp (simple_comparison)
  (simplify
-  (cmp (convert?@2 addr@0) (convert? addr@1))
+  (cmp (convert1?@2 addr@0) (convert2? addr@1))
   (with
    {
      HOST_WIDE_INT off0, off1;

Reply via email to