This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Volatile operations and PRE



At a wild guess, maybe strip_useless_type_conversions() is doing
something Bad.

Almost there. It looks like strip_useless_type_conversions is not used, and then something Bad happens.


The following patch fixes it, but it's completely untested.

2006-11-07 Paolo Bonzini <bonzini@gnu.org>

        * gimplify.c (fold_indirect_ref_rhs): Use
        STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.

Index: ../../gcc/gimplify.c
===================================================================
--- ../../gcc/gimplify.c        (revision 118481)
+++ ../../gcc/gimplify.c        (working copy)
@@ -3207,7 +3207,7 @@ fold_indirect_ref_rhs (tree t)
   tree sub = t;
   tree subtype;

-  STRIP_NOPS (sub);
+  STRIP_USELESS_TYPE_CONVERSION (sub);
   subtype = TREE_TYPE (sub);
   if (!POINTER_TYPE_P (subtype))
     return NULL_TREE;

If anybody could regtest it, this is a regression from 3.3, likely to be present in all 4.x branches.

Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]