From 38457529e47452f4f020ae4089b87d9821eeb073 Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 22 Jun 2015 17:24:25 +0000 Subject: PR c++/66515 * call.c (implicit_conversion): Only reshape for classes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224748 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/call.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7b3cd2ce720..9f4e8b21e3d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2015-06-22 Jason Merrill + + PR c++/66515 + * call.c (implicit_conversion): Only reshape for classes. + 2015-06-22 Mikhail Maltsev * pt.c (maybe_adjust_types_for_deduction): Use std::swap instead of diff --git a/gcc/cp/call.c b/gcc/cp/call.c index ba5da4c36da..a6c313aed59 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -1759,8 +1759,9 @@ implicit_conversion (tree to, tree from, tree expr, bool c_cast_p, /* Call reshape_init early to remove redundant braces. */ if (expr && BRACE_ENCLOSED_INITIALIZER_P (expr) + && CLASS_TYPE_P (to) && COMPLETE_TYPE_P (complete_type (to)) - && CP_AGGREGATE_TYPE_P (to)) + && !CLASSTYPE_NON_AGGREGATE (to)) { expr = reshape_init (to, expr, complain); if (expr == error_mark_node) -- cgit v1.2.1