+2020-03-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/92909
+ * pt.c (find_parameter_packs_r): [DECL_EXPR]: Walk
+ DECL_ORIGINAL_TYPE of a typedef.
+
2020-03-14 Jason Merrill <jason@redhat.com>
PR c++/93248
return NULL_TREE;
case DECL_EXPR:
- /* Ignore the declaration of a capture proxy for a parameter pack. */
- if (is_capture_proxy (DECL_EXPR_DECL (t)))
- *walk_subtrees = 0;
- return NULL_TREE;
+ {
+ tree decl = DECL_EXPR_DECL (t);
+ /* Ignore the declaration of a capture proxy for a parameter pack. */
+ if (is_capture_proxy (decl))
+ *walk_subtrees = 0;
+ if (is_typedef_decl (decl))
+ /* Since we stop at typedefs above, we need to look through them at
+ the point of the DECL_EXPR. */
+ cp_walk_tree (&DECL_ORIGINAL_TYPE (decl),
+ &find_parameter_packs_r, ppd, ppd->visited);
+ return NULL_TREE;
+ }
case TEMPLATE_DECL:
if (!DECL_TEMPLATE_TEMPLATE_PARM_P (t))