/* We can't defer instantiating the function any longer. */
if (!DECL_INITIAL (fun)
- && DECL_TEMPLOID_INSTANTIATION (fun)
+ && (DECL_TEMPLOID_INSTANTIATION (fun) || DECL_DEFAULTED_FN (fun))
&& !uid_sensitive_constexpr_evaluation_p ())
{
location_t save_loc = input_location;
++function_depth;
if (ctx->manifestly_const_eval == mce_true)
FNDECL_MANIFESTLY_CONST_EVALUATED (fun) = true;
- instantiate_decl (fun, /*defer_ok*/false, /*expl_inst*/false);
+ if (DECL_TEMPLOID_INSTANTIATION (fun))
+ instantiate_decl (fun, /*defer_ok*/false, /*expl_inst*/false);
+ else
+ synthesize_method (fun);
--function_depth;
input_location = save_loc;
}
&& DECL_DECLARED_CONSTEXPR_P (*tp)
&& !DECL_INITIAL (*tp)
&& !trivial_fn_p (*tp)
- && DECL_TEMPLOID_INSTANTIATION (*tp)
+ && (DECL_TEMPLOID_INSTANTIATION (*tp) || DECL_DEFAULTED_FN (*tp))
&& !uid_sensitive_constexpr_evaluation_p ())
{
++function_depth;
- instantiate_decl (*tp, /*defer_ok*/false, /*expl_inst*/false);
+ if (DECL_TEMPLOID_INSTANTIATION (*tp))
+ instantiate_decl (*tp, /*defer_ok*/false, /*expl_inst*/false);
+ else
+ synthesize_method (*tp);
--function_depth;
}
else if (TREE_CODE (*tp) == CALL_EXPR