https://gcc.gnu.org/g:1c0ecf06c0c9f3268ba52d4027e9b78aae4acb51

commit r15-4722-g1c0ecf06c0c9f3268ba52d4027e9b78aae4acb51
Author: Andrew MacLeod <amacl...@redhat.com>
Date:   Mon Oct 28 09:47:03 2024 -0400

    Fix bitwise_or logic for prange.
    
    Set non-zero only if at least one of the two operands does not contain zero.
    
            * range-op-ptr.cc (operator_bitwise_or::fold_range): Fix logic
            for setting nonzero.

Diff:
---
 gcc/range-op-ptr.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/range-op-ptr.cc b/gcc/range-op-ptr.cc
index 9f500c52d2c6..ccce05035b96 100644
--- a/gcc/range-op-ptr.cc
+++ b/gcc/range-op-ptr.cc
@@ -388,7 +388,7 @@ operator_bitwise_or::fold_range (prange &r, tree type,
 {
   // For pointer types, we are really only interested in asserting
   // whether the expression evaluates to non-NULL.
-  if (!op1.zero_p () || !op2.zero_p ())
+  if (!range_includes_zero_p (op1) || !range_includes_zero_p (op2))
     r.set_nonzero (type);
   else if (op1.zero_p () && op2.zero_p ())
     r.set_zero (type);

Reply via email to