PR c++/84080 - ICE with return type deduction and specialization.
* pt.c (determine_specialization): Check uses_template_parms. From-SVN: r257630
This commit is contained in:
parent
ff67aff425
commit
9ef86762aa
@ -1,5 +1,8 @@
|
||||
2018-02-13 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/84080 - ICE with return type deduction and specialization.
|
||||
* pt.c (determine_specialization): Check uses_template_parms.
|
||||
|
||||
Fix more variadic capture issues.
|
||||
* pt.c (find_parameter_packs_r): Also look at explicit captures.
|
||||
(check_for_bare_parameter_packs): Check current_class_type for
|
||||
|
@ -2203,6 +2203,11 @@ determine_specialization (tree template_id,
|
||||
specialize TMPL will produce DECL. */
|
||||
continue;
|
||||
|
||||
if (uses_template_parms (targs))
|
||||
/* We deduced something involving 'auto', which isn't a valid
|
||||
template argument. */
|
||||
continue;
|
||||
|
||||
/* Remove, from the set of candidates, all those functions
|
||||
whose constraints are not satisfied. */
|
||||
if (flag_concepts && !constraints_satisfied_p (fn, targs))
|
||||
|
6
gcc/testsuite/g++.dg/cpp1y/auto-fn47.C
Normal file
6
gcc/testsuite/g++.dg/cpp1y/auto-fn47.C
Normal file
@ -0,0 +1,6 @@
|
||||
// PR c++/84080
|
||||
// { dg-do compile { target c++14 } }
|
||||
|
||||
template <int i, typename T> T foo();
|
||||
|
||||
template <> auto foo<0>() { return 42; } // { dg-error "does not match" }
|
Loading…
Reference in New Issue
Block a user