------- Comment #4 from pinskia at gcc dot gnu dot org  2007-07-18 20:15 -------
This patch adds extra testing (though not tested fully) to catch this earlier:
Index: tree.c
===================================================================
--- tree.c      (revision 126721)
+++ tree.c      (working copy)
@@ -3072,8 +3072,12 @@
   gcc_assert (code != GIMPLE_MODIFY_STMT);
 #endif

-  if ((code == MINUS_EXPR || code == PLUS_EXPR || code == MULT_EXPR)
-      && arg0 && arg1 && tt && POINTER_TYPE_P (tt))
+  if ((code == MINUS_EXPR || code == PLUS_EXPR || code == MULT_EXPR
+       || code == BIT_AND_EXPR)
+      && arg0 && arg1 && tt
+      && (POINTER_TYPE_P (tt)
+         || POINTER_TYPE_P (TREE_TYPE (arg1))
+         || POINTER_TYPE_P (TREE_TYPE (arg0))))
     gcc_assert (TREE_CODE (arg0) == INTEGER_CST && TREE_CODE (arg1) ==
INTEGER_CST);

   if (code == POINTER_PLUS_EXPR && arg0 && arg1 && tt)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32780

Reply via email to