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

            Bug ID: 110566
           Summary: [13/14 Regression] ICE when instantiating function
                    template with template template parameter with 2 or
                    more auto parameters with a dependent member template,
                    ICE in tsubst, at cp/pt.cc:16135
           Product: gcc
           Version: 13.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: waffl3x at protonmail dot com
  Target Milestone: ---

https://godbolt.org/z/6d4ec5va3

template<template<auto, auto> typename> void takes_templ();

template<typename>
struct v_v_member_templ_fn {
    template<auto, auto>
    using fn = void;
};

using ice = decltype(takes_templ<v_v_member_templ_fn<void>::template fn>());

This one seems kind of boring to me, only interesting things to note are the
ICE only manifests with 2 or more (I assume) auto template parameters, it works
as expected with only a single auto template parameter.
The version of GCC on my local machine that exhibits this behavior is: 13.1.1
20230429

Not as convoluted as I'm used to, but at least that means it should be easy to
fix! One can hope anyway.

Reply via email to