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

    <tr>
        <th>Summary</th>
        <td>
            clang: redeclaration of template with deduced class type placeholder does not work
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          J-Richter
      </td>
    </tr>
</table>

<pre>
    ```
template<int N> struct Str;
template<Str... A> struct Alt;
template<int N> struct Str {};
template<Str... A> struct Alt {};
```

gives:
template non-type parameter has a different type 'Str' in template redeclaration

Forward declaring this struct should work.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMUruS2yAU_RrU3LFGBj2sgsIbR0WKFNkvQHAlSBBo4Go9-_cZy5vsI1tkRiOK8-Dcw1U5uzkgStY8sOZSqI1sTPLb4YfTljAVYzTPkrXVy1ddWHUmXFavCJn44gLBdya-Qqa0aYJHSkw8_EN7pFSWJZzfMM-ePmN-Ygise2Dd5f99Pwo-xL__Z_eEmYnze08IMRzoeUVYVVILEiawKoMC46YJEwaCHWa8u83KO3AB_qoTGtReJUUuhre3DTFdVTJwh12YgazLfzJnGzdv4BrTr_LOL4wUphe9KlAe2647tnUr6sJK7Kqmbk5tq4-iEZPpse66FidzMvzUT3XhJK-4qDgXx6YSTV2Ofd2NSuhTjf04GsPqChflfOn901LGNBcu5w1lW_WNKLwa0ed9HTgPeIUdZJzftiPJm-YwbnNmdeVdpvzqQo48Su1VmJk4v68C4vRa0tWRBYNm02hAe5XzvdLVK402eoMJTMQMIdLeSbElLy3Rur8XHxgfZkd2G0sdF8aHW4SX47Cm-BM1MT7swTPjwz7Y7wAAAP__fx3r4Q">