aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/init.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-04-07 17:47:24 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-04-07 17:47:24 -0400
commit362115a9125a17809f4b7c9c37afccc9029ed733 (patch)
tree5171555c7e129348caefab585cca1c46559af02a /gcc/cp/init.c
parent351ccf209e1e4495534044e3cd77ee03f32bdda2 (diff)
downloadgcc-362115a9125a17809f4b7c9c37afccc9029ed733.zip
gcc-362115a9125a17809f4b7c9c37afccc9029ed733.tar.gz
gcc-362115a9125a17809f4b7c9c37afccc9029ed733.tar.bz2
re PR c++/48450 ([C++0x][SFINAE] Hard errors with static_cast expressions)
PR c++/48450 * tree.c (build_cplus_new, build_aggr_init_expr): Take complain. (bot_manip): Adjust. * cp-tree.h: Adjust. * call.c (convert_like_real, build_cxx_call): Adjust. (perform_direct_initialization_if_possible): Adjust. * cvt.c (ocp_convert): Adjust. * init.c (build_value_init): Adjust. * semantics.c (maybe_add_lambda_conv_op): Adjust. * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust. * typeck2.c (build_functional_cast): Adjust. From-SVN: r172143
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r--gcc/cp/init.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 005f8d6..3131690 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -342,7 +342,8 @@ build_value_init (tree type, tsubst_flags_t complain)
(type,
build_special_member_call (NULL_TREE, complete_ctor_identifier,
NULL, type, LOOKUP_NORMAL,
- complain));
+ complain),
+ complain);
else if (TREE_CODE (type) != UNION_TYPE && TYPE_NEEDS_CONSTRUCTING (type))
{
/* This is a class that needs constructing, but doesn't have
@@ -354,7 +355,7 @@ build_value_init (tree type, tsubst_flags_t complain)
NULL, type, LOOKUP_NORMAL, complain);
if (ctor != error_mark_node)
{
- ctor = build_aggr_init_expr (type, ctor);
+ ctor = build_aggr_init_expr (type, ctor, complain);
AGGR_INIT_ZERO_FIRST (ctor) = 1;
}
return ctor;