aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/typeck2.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-04-26 15:28:25 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-04-26 15:28:25 -0400
commit574cfaa47dbcc2e8d9ea68b83d8dc3122832ff9b (patch)
treee83e77854b5490319145c8e64a21bec89b47616f /gcc/cp/typeck2.c
parent5a87ca71c875b5bc34b9b8bc0ef405cec9b51b51 (diff)
downloadgcc-574cfaa47dbcc2e8d9ea68b83d8dc3122832ff9b.zip
gcc-574cfaa47dbcc2e8d9ea68b83d8dc3122832ff9b.tar.gz
gcc-574cfaa47dbcc2e8d9ea68b83d8dc3122832ff9b.tar.bz2
re PR c++/48530 ([C++0x][SFINAE] Hard errors with deleted d'tors)
PR c++/48530 * decl.c (cxx_maybe_build_cleanup): Add complain parm. * tree.c (force_target_expr): Add complain parm. (build_target_expr_with_type): Likewise. (get_target_expr_sfinae): Split out. (build_vec_init_expr, bot_manip): Adjust. * init.c (build_vec_delete, build_vec_delete_1): Add complain parm. (build_delete, build_dtor_call): Likewise. (perform_direct_initialization_if_possible): Adjust. (build_vec_init): Handle error return. * cvt.c (force_rvalue): Add complain parm. Call build_special_member_call directly. * decl2.c (delete_sanity): Add complain parm. (build_cleanup): Adjust. * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust. * semantics.c (finish_stmt_expr_expr): Adjust. (finish_compound_literal): Adjust. * parser.c (cp_parser_delete_expression): Adjust. * typeck2.c (build_functional_cast): Adjust. * cp-tree.h: Adjust. From-SVN: r172985
Diffstat (limited to 'gcc/cp/typeck2.c')
-rw-r--r--gcc/cp/typeck2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 49f4e7e..5522868 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -1610,7 +1610,7 @@ build_functional_cast (tree exp, tree parms, tsubst_flags_t complain)
&& !TYPE_HAS_USER_CONSTRUCTOR (type))
{
exp = build_value_init (type, complain);
- exp = get_target_expr (exp);
+ exp = get_target_expr_sfinae (exp, complain);
/* FIXME this is wrong */
if (literal_type_p (type))
TREE_CONSTANT (exp) = true;