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

    <tr>
        <th>Summary</th>
        <td>
            Clang doesn't generate a function when using __array_rank
        </td>
    </tr>

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

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

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

<pre>
    The code [(Godbolt)](https://godbolt.org/z/3qe4Gqqvx)
```c++
#include <__type_traits/integral_constant.h>

template <class T>
struct rank : std::integral_constant<int, __array_rank(T)> {};

template <class T>
void test_rank() {
  static_assert(rank<T>::value == 0);
}

void func() {
  test_rank<void>();
}
```
generates `func()`, but doesn't generate `test_rank<void>()`.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNU9uOmzAQ_RrzYhWBTYA88JDLdn8g78gYB9x17MQe0qZf37HTNKvuVqpkQHM75wyeGdx46w6zotKNipLVlrD21Y2DM0DYmqz2aM8A50D4hrCveKZ7NHd-QusnPvyiqtfL5fojVhR7UmxIXdyPJGwbz93LuLbSLJGI7_oebmfVgxcaAqJoC2rywvTS2QDCQj4T_vK7Mr1Bnc5GQKqWRoRAD38yAvhFAvXCvmF4QwOMUTHffIDFYvQRtqN9L7wXtz4WYZuHKJ-_UNJsSbMnfPu_3FenRwoqwAMJgRJKilLUIkDLHouUR-I2ZfFdAkgar8IsERlJ97RIMh7kKOSdisR0XKz8SPLk57uYFsFT0idYj9u5m5OyymNrgaLrCR7j-JOGBejoVLCENUAfuTH134x1kd-hM9WVdV3wtq2qKhs7Pq75WmSgwahuZ4SdPsMWqUXQztLvs7J0CRoT399WtnjT_TWWGuZlyKU7oWHM9fH5cvbum5IQJyyERcVRWzUl59nctVUp2mFYt2smjqPirByG1aocyrpsFGubzIhBmdCltWAy6kW-uCmoFT24HpnuWMFY0Za8LIui4jljbcGFPNZ1PPJIqkKdhDZ5VBO3JvNdEjYsU8Cg0QHCM4hToierVCJFfLHA7Hx3nrWx-q1pmiy10aUefgFkKh4a">