https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67913

--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
The following otherwise untested patch makes GCC reject new expressions with
negative numbers of elements:

@@ -3066,6 +3378,14 @@ build_new (vec<tree, va_gc> **placement, tree type, tree
nelts,
           else
             return error_mark_node;
         }
+
+      if (TREE_CONSTANT (nelts) && tree_int_cst_lt (nelts, integer_zero_node))
+       {
+         if (complain & tf_error)
+           error ("number of array elements %qE is less than zero", nelts);
+         return error_mark_node;
+       }
+
       nelts = mark_rvalue_use (nelts);
       nelts = cp_save_expr (cp_convert (sizetype, nelts, complain));
     }

Reply via email to