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

    <tr>
        <th>Summary</th>
        <td>
            Clang accepts invalid program involving template keyword when used without a template arg list
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    The following invalid program(as per [temp.name#6]) compiles with gcc and clang. [Demo](https://godbolt.org/z/Yrj94haa4)

```
template<typename T>
struct C
{
     template<typename U> void func(U)
 {

     }
};
int main()
{
    C<int> c;  
    c.template func(5); //this is invalid as per current wording gcc and clang accepts but msvc correctly rejects     
    //c.template func<>(5); //valid as per current wording. All compilers accepts this
}

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8k92OsywQx69mPJmsUdC2HnjQj_UKdg_eQwRU9kUwgG36XP0TrG13m81jiEqYj9_8h2Heq95IWUN5gPKUsDkM1tWOGcaMtVPSWnGtPwaJndXaXpTpUZkz00rg5Gzv2AhkxzxO0iGUhyDHKTVslEDoBsoTkAq5HSelpceLCgP2nCMzArlmpk-jz0mOdjHdDSFMHugeSAOk6a1orQ6pdT2Q5g-Q5j_3VRUDYwWQCrITZPv1vcnWtWwjhGZBAj2G6yQjDn4Afb-d-uBmHvC4um4Ptx-Mz2-en0Df8WyVwG42HMju85EdH97fYsD2dA99ArqeKxNwZMoA2T3Zv6c-Aj0qE2IuDvSA-Dzi6R3rTlDGGPSAN53CoDzGtfZl7QafnZMm4MU6Edv2Q3hknMspeGzngKM_c-TWOcmDvqKTX5IHfyvmQXHL9cpCj1HXV6J_caS41_p-J5x_gMQqnrr91txE1FRUtGKJrPNtVuZFVRVlMtTldsvzbsfzXLRdUYkqz4XoWsm6otuQjCeqJhkpsjynOSnKokz5puUVbVnb0k5mJYcikyNTOtX6PMYLlyjvZ1lvdxnNE81aqf0yIoQs8gEhcVpcHe3f2rn3UGRa-eCfEYIKWtbHH2q_jE7cW32O3XnI-r-8RqXwMkiDs5diGRs7B2RPI-Z6jOmS2en6ZWpUGOY25XYE0kSY9fM2ORv7CqRZavNAmqW8vwEAAP__RmM8UQ">