re PR c++/51416 ([c++0x] [4.6/4.7 Regression] ICE with invalid use of auto)
authorJason Merrill <jason@gcc.gnu.org>
Sat, 17 Dec 2011 13:51:51 +0000 (08:51 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Sat, 17 Dec 2011 13:51:51 +0000 (08:51 -0500)
PR c++/51416
* init.c (build_value_init_noctor): Check for incomplete type.

From-SVN: r182435

gcc/cp/init.c

index 98a80e396622fa7d45d1c44d57ded748933a7955..2355a04de23150abac7e36ec9b22ffdd30da2bde 100644 (file)
@@ -377,6 +377,12 @@ build_value_init (tree type, tsubst_flags_t complain)
 tree
 build_value_init_noctor (tree type, tsubst_flags_t complain)
 {
+  if (!COMPLETE_TYPE_P (type))
+    {
+      if (complain & tf_error)
+       error ("value-initialization of incomplete type %qT", type);
+      return error_mark_node;
+    }
   /* FIXME the class and array cases should just use digest_init once it is
      SFINAE-enabled.  */
   if (CLASS_TYPE_P (type))