From: Jason Merrill Date: Tue, 16 Aug 2011 23:25:43 +0000 (-0400) Subject: re PR c++/50054 (Fails to recover from type error in function signature) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=098416302ba1d50a7f183e8643a2563a255b744a;p=gcc.git re PR c++/50054 (Fails to recover from type error in function signature) PR c++/50054 * typeck2.c (cxx_incomplete_type_diagnostic): Handle init_list_type_node. From-SVN: r177810 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a18a24c262c..ea1a8d086e0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-08-16 Jason Merrill + + PR c++/50054 + * typeck2.c (cxx_incomplete_type_diagnostic): Handle + init_list_type_node. + 2011-08-13 Jason Merrill PR c++/50075 diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 07881387eba..79aa354ad02 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -450,6 +450,12 @@ cxx_incomplete_type_diagnostic (const_tree value, const_tree type, break; case LANG_TYPE: + if (type == init_list_type_node) + { + emit_diagnostic (diag_kind, input_location, 0, + "invalid use of brace-enclosed initializer list"); + break; + } gcc_assert (type == unknown_type_node); if (value && TREE_CODE (value) == COMPONENT_REF) goto bad_member; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 54053b99af8..2e56e745e42 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-08-16 Jason Merrill + + PR c++/50054 + * g++.dg/cpp0x/initlist56.C: New. + 2011-08-15 H.J. Lu PR testsuite/50085 diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist57.C b/gcc/testsuite/g++.dg/cpp0x/initlist57.C new file mode 100644 index 00000000000..d945a468988 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/initlist57.C @@ -0,0 +1,8 @@ +// PR c++/50054 +// { dg-options -std=c++0x } + +void g( const int& (a)[1] ) {} // { dg-error "array of references" } + +int main () { + g( { 1, 2 } ); // { dg-error "initializer list" } +}