https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65554
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I would hazard a guess that this started with r171740. And I think the fix is the following: --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -6366,7 +6366,8 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum, field = next_initializable_field (TYPE_FIELDS (totype)); CONSTRUCTOR_APPEND_ELT (vec, field, array); field = next_initializable_field (DECL_CHAIN (field)); - CONSTRUCTOR_APPEND_ELT (vec, field, size_int (len)); + CONSTRUCTOR_APPEND_ELT (vec, field, + build_int_cst (TREE_TYPE (field), len)); new_ctor = build_constructor (totype, vec); return get_target_expr_sfinae (new_ctor, complain); }