* decl.c (cp_finish_decl): Never throw for VLA bound == 0.
authorJason Merrill <jason@redhat.com>
Wed, 30 Oct 2013 17:30:10 +0000 (13:30 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 30 Oct 2013 17:30:10 +0000 (13:30 -0400)
From-SVN: r204218

gcc/cp/ChangeLog
gcc/cp/decl.c

index 0d329b5a9286646faf7deb4206719735dc6c5601..da1d7f945cf0d4129bb6b7e31c84a8637025ae5f 100644 (file)
@@ -1,3 +1,7 @@
+2013-10-30  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (cp_finish_decl): Never throw for VLA bound == 0.
+
 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
 
        Patch autogenerated by refactor_symtab.py from
index 1e92f2af85e7dd1e718edb70f7826f5616ca7815..476d5594156e229bfc58875a39ae4f8e9c996a01 100644 (file)
@@ -6404,11 +6404,7 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
       /* If the VLA bound is larger than half the address space, or less
         than zero, throw std::bad_array_length.  */
       tree max = convert (ssizetype, TYPE_MAX_VALUE (TYPE_DOMAIN (type)));
-      /* C++1y says we should throw for length <= 0, but we have
-        historically supported zero-length arrays.  Let's treat that as an
-        extension to be disabled by -std=c++NN.  */
-      int lower = flag_iso ? 0 : -1;
-      tree comp = build2 (LT_EXPR, boolean_type_node, max, ssize_int (lower));
+      tree comp = build2 (LT_EXPR, boolean_type_node, max, ssize_int (-1));
       comp = build3 (COND_EXPR, void_type_node, comp,
                     throw_bad_array_length (), void_zero_node);
       finish_expr_stmt (comp);