https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113349

--- Comment #9 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
When we're parsing "decltype([] {}())", we create auto with idx=0 and level=2
(because current_template_depth==1 and we use a TEMPLATE_TYPE_PARM with a level
one deeper than the actual template parms).

Later, we want to instantiate type<1>.  To do so, we tsubst_entering_scope with
t=X, args={{int}, {1}}.  tsubst_template_args then substitutes the
decltype_type.  Then we get to the auto we created previously, while args is
still {{int}, {1}}.  Then we wrongly match the auto against 1, which causes the
crash.

Reply via email to