https://gcc.gnu.org/g:85f5d0642184b68b38bf3daee5a1d04b753850b1

commit r15-3956-g85f5d0642184b68b38bf3daee5a1d04b753850b1
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Sep 27 13:50:31 2024 +0200

    tree-optimization/116785 - relax volatile handling in PTA
    
    When there's volatile qualified stores we do not have to treat the
    destination as pointing to ANYTHING.  It's only when reading from
    it that we want to treat the resulting pointers as pointing to ANYTHING.
    
            PR tree-optimization/116785
            * tree-ssa-structalias.cc (get_constraint_for_1): Only
            volatile qualified reads produce ANYTHING.

Diff:
---
 gcc/tree-ssa-structalias.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc
index d6a53f801f03..54c4818998d8 100644
--- a/gcc/tree-ssa-structalias.cc
+++ b/gcc/tree-ssa-structalias.cc
@@ -3646,7 +3646,7 @@ get_constraint_for_1 (tree t, vec<ce_s> *results, bool 
address_p,
       }
     case tcc_reference:
       {
-       if (TREE_THIS_VOLATILE (t))
+       if (!lhs_p && TREE_THIS_VOLATILE (t))
          /* Fall back to anything.  */
          break;
 
@@ -3751,7 +3751,7 @@ get_constraint_for_1 (tree t, vec<ce_s> *results, bool 
address_p,
       }
     case tcc_declaration:
       {
-       if (VAR_P (t) && TREE_THIS_VOLATILE (t))
+       if (!lhs_p && VAR_P (t) && TREE_THIS_VOLATILE (t))
          /* Fall back to anything.  */
          break;
        get_constraint_for_ssa_var (t, results, address_p);

Reply via email to