PR c++/89966 - error with non-type auto tparm.
My patch for PR 86932 broke this testcase by passing tf_partial to coerce_template_template_parms, which prevented do_auto_deduction from actually replacing the auto. * pt.c (do_auto_deduction): Clear tf_partial. From-SVN: r270160
This commit is contained in:
parent
17838af989
commit
950b198d4a
@ -1,3 +1,8 @@
|
||||
2019-04-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/89966 - error with non-type auto tparm.
|
||||
* pt.c (do_auto_deduction): Clear tf_partial.
|
||||
|
||||
2019-04-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/86986 - ICE with TTP with parameter pack.
|
||||
|
@ -27504,6 +27504,10 @@ do_auto_deduction (tree type, tree init, tree auto_node,
|
||||
if (init && undeduced_auto_decl (init))
|
||||
return type;
|
||||
|
||||
/* We may be doing a partial substitution, but we still want to replace
|
||||
auto_node. */
|
||||
complain &= ~tf_partial;
|
||||
|
||||
if (tree tmpl = CLASS_PLACEHOLDER_TEMPLATE (auto_node))
|
||||
/* C++17 class template argument deduction. */
|
||||
return do_class_deduction (type, tmpl, init, flags, complain);
|
||||
|
6
gcc/testsuite/g++.dg/cpp1z/nontype-auto15.C
Normal file
6
gcc/testsuite/g++.dg/cpp1z/nontype-auto15.C
Normal file
@ -0,0 +1,6 @@
|
||||
// PR c++/89966
|
||||
// { dg-do compile { target c++17 } }
|
||||
|
||||
template < auto a0 >
|
||||
void f0() { }
|
||||
void f0_call() { f0< sizeof(int) >(); }
|
Loading…
Reference in New Issue
Block a user