This is the mail archive of the gcc-bugs@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]

[Bug c++/31743] [4.1/4.2/4.3 regression] ICE with invalid use of new



------- Comment #4 from pinskia at gcc dot gnu dot org  2007-06-05 20:39 -------
This patch is incorrect and just wrong, the C++ front-end should be catching
this before calling size_binop.  Also the code is invalid so we should have an
error.
This patch also allows us to get around the ICE (but still does not provide an
error):
Index: /home/apinski/src/gcc-fsf/pointerplusexpr/gcc/gcc/cp/tree.c
===================================================================
--- /home/apinski/src/gcc-fsf/pointerplusexpr/gcc/gcc/cp/tree.c (revision
125291)
+++ /home/apinski/src/gcc-fsf/pointerplusexpr/gcc/gcc/cp/tree.c (working copy)
@@ -1415,8 +1415,11 @@ cxx_print_statistics (void)
 tree
 array_type_nelts_top (tree type)
 {
+  tree tmp = array_type_nelts (type);
+  if (tmp == error_mark_node)
+    return error_mark_node;
   return fold_build2 (PLUS_EXPR, sizetype,
-                     array_type_nelts (type),
+                     tmp,
                      integer_one_node);
 }


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-06-05 20:39:08
               date|                            |


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


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