<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/90209>90209</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            CTAD: parameter pack assertion crash when synthesizing deduction guides for alias 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c++20,
            clang:frontend
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          hokein
      </td>
    </tr>
</table>

<pre>
    Example:

```
struct Key1 {}; 

template <int i>
struct Item {};

template <class... Ts>
struct List {};

template <class Key, class L>
struct TemplatedClass {
  template <class... Items>
 TemplatedClass(Key, Items...);
};

template <class Key, class...Items>
  requires(sizeof(Key) > 0 && (sizeof(Items) && ...))
TemplatedClass(Key, Items...) -> TemplatedClass<Key, List<Items...>>;

template <class T>
struct HasTemplateParam {
 template <class Key, class... Items>
  using Alias = TemplatedClass<Key, List<Items...>>;
};

struct Mod1 : HasTemplateParam<Mod1> {
 using Foo1 = decltype(Alias{Key1()});
};

```

https://godbolt.org/z/fssjafzYe.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyclMGOmzAQhp9muFiLYEwgHDgkJKhVt1IPufTowBC86-DUNm2Tp69M2GbLtt1tJUREZuafb-bHCGvloScqYLGGxSYQg-u0KTr9SLIP9ro5F9vv4nhSBHwF0Qaip3saTdf4aJ0Zasc-0DlmkK0h2wBfs-cFjo4nJRwx4KXsHZPAt7_Uvnd0vNX-qbRWwtowDNnOzgXupXVvFPCggCW7PtzPlXZTflOOca85hhn7LYonv9HMqgGXU7MxLQxDwPzG94-sYRjOujFDXwZpyDey8kK6feqYM-BbFjHAFDBlz-NXDZ9xjU1UmF9F3zABu_Pis0ReToneCuDlz3y-Ha9XBt3NfXgn7FOHT8KI4zMnXl3T3BU2WNkf2EpJYRnwzf-yvzBsYv2om5gBX72ABl76mF_XDf8KU2kdjywN1cqdTwS4HAEhW_ujBLj0nmSbv78ys7N4vXfOnaw_tFgBVgfd7LVyoTYHwOoCWLXWPoj28pnCoCl4k_NcBFTEWZzEPFvmSdAVGdY8jhEjShKeZFkbNUm-WMZpyxfI4zaQBUaYRAmmMcdkwcM8rdOaOKWLeJ9jKyCJ6CikCpX6evTNA2ntQEUeYZQHSuxJ2fHTg1gDrgHXGAEiYOn_UaI_AF-1RveO-sYHFpvAFF7sbj8cLCSRktbZm7yTTlFR7lYbb8XJ758cGXYS9SMT1pJxUvesNsJ27FtHPbPn3nVk5cUb0lAz1GPGYZANWdZqw8T4ygSDUcVsqdJ1wz6s9RGw8gjTz93J6AeqHWA1jmsBq3HiHwEAAP__Ef2YYw">