Skip to content
Snippets Groups Projects
Commit 03381bec authored by Jason Merrill's avatar Jason Merrill
Browse files

c++: auto member function and auto variable [PR106893]

As with PR105623, we need to call mark_single_function sooner to
resolve the type of a BASELINK.

	PR c++/106893
	PR c++/90451

gcc/cp/ChangeLog:

	* decl.cc (cp_finish_decl): Call mark_single_function.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp1y/auto-fn65.C: New test.
parent 6bcca5f6
No related branches found
No related tags found
No related merge requests found
......@@ -8140,6 +8140,9 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
d_init = build_x_compound_expr_from_list (d_init, ELK_INIT,
tf_warning_or_error);
d_init = resolve_nondeduced_context (d_init, tf_warning_or_error);
/* Force auto deduction now. Use tf_none to avoid redundant warnings
on deprecated-14.C. */
mark_single_function (d_init, tf_none);
}
enum auto_deduction_context adc = adc_variable_type;
if (DECL_DECOMPOSITION_P (decl))
......
// PR c++/106893
// { dg-do compile { target c++14 } }
template <typename T>
struct CoordTraits
{
static auto GetX(T const &p) { return 1; }
};
typedef CoordTraits<int> Traits;
static constexpr auto GetX = Traits::GetX;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment