diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2011-05-09 19:24:50 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2011-05-09 19:24:50 +0000 |
commit | 754af126c04251c045d99b808915d9fde11de8a5 (patch) | |
tree | 1c5d88069cb3be67ae847b2bf84b28808589d61f /gcc/cp/decl2.c | |
parent | e4c0337862a3d76255d4ad7be49b4435910ede1e (diff) | |
download | gcc-754af126c04251c045d99b808915d9fde11de8a5.zip gcc-754af126c04251c045d99b808915d9fde11de8a5.tar.gz gcc-754af126c04251c045d99b808915d9fde11de8a5.tar.bz2 |
re PR c++/48737 ([C++0x][SFINAE] Hard errors with array list-construction with too many elements)
/cp
2011-05-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/48737
PR c++/48744
* decl.c (reshape_init): Take a complain parameter and do
not call error if tf_error is not set.
(check_initializer, reshape_init_r, reshape_init_array,
reshape_init_array_1, reshape_init_vector, reshape_init_class):
Adjust.
* typeck2.c (digest_init_r): Take a complain parameter and
pass it to convert_for_initialization.
(digest_init, digest_init_flags, process_init_constructor_array,
process_init_constructor_record, process_init_constructor_union,
process_init_constructor, digest_init_r): Adjust.
* init.c (expand_default_init, build_new_1): Likewise.
* typeck.c (cp_build_modify_expr): Likewise.
* decl2.c (grokfield): Likewise.
* call.c (convert_like_real, convert_default_arg): Likewise.
* semantics.c (finish_compound_literal): Pass complain to
reshape_init and digest_init.
* cp-tree.h: Adjust declarations.
/testsuite
2011-05-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/48737
PR c++/48744
* g++.dg/template/sfinae28.C: New.
* g++.dg/template/sfinae29.C: Likewise.
From-SVN: r173590
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r-- | gcc/cp/decl2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 2e08dd7..91a6644 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -924,7 +924,7 @@ grokfield (const cp_declarator *declarator, else if (!processing_template_decl) { if (TREE_CODE (init) == CONSTRUCTOR) - init = digest_init (TREE_TYPE (value), init); + init = digest_init (TREE_TYPE (value), init, tf_warning_or_error); init = maybe_constant_init (init); if (init != error_mark_node && !TREE_CONSTANT (init)) |