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

    <tr>
        <th>Summary</th>
        <td>
            variable template partial specializations issue
        </td>
    </tr>

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

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

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

<pre>
    ```
#include <iostream>

template <int x, int y> int VarTemp  = VarTemp<y, x % y>;
template <int x > int VarTemp<x, 0>  = x;

int main()
{
    std::cout << "VarTemp< 9, 6> = " << VarTemp< 9, 6> << std::endl;
    if( VarTemp< 9, 6> == 3 ) 
    {
        std::cout << "=======ok=========" << std::endl;
    }
    else
    {
        std::cout << "=======nok=========" << std::endl;
    }
}

```

gcc  result:
VarTemp< 9, 6> = 3
=======ok=========

clang result is different from gcc, is it clang bug?
VarTemp< 9, 6> = 0
=======nok=========


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVNtymzAQ_RrxoqlHSMZYDzwkcfIFnb4LSYBaAR5JJHa_viuBTeqpk-lMmB1dds_uOYgV9ajOFdqRxcgBkQdEmRmknZTGiD2Z0QenRY_Y8xJOY9D90YowQ4aAT4g-4bg4AzAtfgj3HUAYEIfLBsDnCDxhRIsERezxTkF8Uwj8iYREfyp6uibPYwT3wgyI7hHlS6RcIBgeHxRiD2BynEIkAgMldGXAPFLsIkVkgNgFdgeTYte6elD2KioymgbE3Ms9RAoGJByvGX8J_kj0nH9j469_uhdb3-a-YlQe1o22Xn-VtOELta2Lebxp4DS2UmLstJ9siOWS7-6HZkvm_5_pO0ZpxdAulNh4rEzTaKehKxs39hgEpUvisQl4xtZTi9jLJ9rIB9o-OdR34jJd5buCk31J822mKqY44yILJlhdvQpnRG01vt7Co3DBCIv9UUuYzW8RzDiAdO8nnU3OVl0IRx9Plr6AtSZ0U72RYw8ba18v07ejG39qGWCbUj0sil3JedZVspRKFVSpXJVSFkWhtkSXrMkFeBjTmRU1dGCFikdoj0G_zeyxwYpDZipKKCUl5YQzxrYbKWpSirzcc7Zr9iRHUA1-B3YTdWxG12auSpLg1D0ErfHBr0HhvWkHrRMd1BdT6EZXyW7qhfOdsHmW6Ksk_w-yaWI9">