https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90236
Bug ID: 90236 Summary: bogus error with auto non-type template argument Product: gcc Version: 8.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org Target Milestone: --- Compiling this with g++8 and -std=c++17 struct foo { }; template <const auto &> void fnc() { } void test() { static constexpr foo a; fnc<a>(); } results in r.cc: In function ‘void test()’: r.cc:9:10: error: no matching function for call to ‘fnc<a>()’ fnc<a>(); ^ r.cc:3:30: note: candidate: ‘template<const auto& <anonymous> > void fnc()’ template <const auto &> void fnc() { } ^~~ r.cc:3:30: note: template argument deduction/substitution failed: r.cc:9:10: error: ‘a’ is not a valid template argument for type ‘const foo&’ because object ‘a’ does not have linkage fnc<a>(); ^ This doesn't happen on trunk since r265789, so maybe we need to apply parts of that commit to 8.