<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzFVF2P6jYQ_TXhZbSIOIQsD3lgA3u7L8uqun2OnNghbp04sh3Y7a_v2CZlKaxu1VYqskw8nhmfM1-VYh_595ZDo6RUJ9EfwHJjoaaGR8kmWmyjxbSvFmHVwxAklneDpBYVC_sx8J52HPaDFaqPkl1QMVaPtQXlpaWm_YGfvWVPk_O1sdSKGmrVG8vfBw2VUhIYb0TPGUTJFhoqHZ7JJNtevsNOkqAO293zy-uu3L99f9m_lj9vXr_tIvJYBgARKaB0MA1-lZ0Igo6-R2QNUVrc0EIeF_k9Lkkxuf6sieQ-He4QPBsBQvD8PJbk7xrR97MRAv-R0U0okQT_oRUdrQIfqPBSiNmVFebgUwJ4P3aY-9vc7t9iF-T9Gwl_ydcpfPYrhldXR6oBi2V5FKZWo4FOMS6DokcJdUt1RDb4plOP0ifnmjzFUbq9BRER4nE4DNdCck-YXAlvkN4vMSTvCAY4nmo8MSbri4epicKxoUIawFhXo5AMTsK24DpMYnEhG1wP8RIeanh4h1YMeAWgNHypU4-MOuf4sPflQsi1VvrSy9cApktgH5hjrAHRCyuoFL9TX2vCQK8smHEYlLZYQg0-X5aMH0XNy9L3T-kzQns7nQ3mhrNwoj1DSUd7enAiOFItaCW5mf8HwUx3cP8XZbu_rmCRFMYy4edTsomXuBG3OZJu3gFWPyJ2PLXqsNNqrSAi2V2UWfA5vfkPmugL9BOJP-l9Sec6mW6O19gocFL6NxMqoHBlAnHic3GgOG9OLe9Dvblp7_LJUZFr-OnlzRVX8ct2M2XOu6D9ByivUatuEBI_MEXfisJpnf3HrojdK-s7_ltl7Pyq1_0-Y3nC1smazjBSrdL5vpKqU8fZqGXeWjsYV7V-LBwQx1jN8X08SHmc_h4GrX7ltcWjMGZ0c_05TbLHxazN41XGalrVFSOENdVyxZJ4ta5Y06zqNM3SmaQVlybH2YH93vMTeBeu99Pt7N8jEDlZEFxxTGKyXGbzNE7XPF1knDereMUfo-WCdzgA5s7PXOnDTOfeZTUeDF5KYay5XFJjxKHn3ANGhFZYyfNz_Jeg-UFzVHFN2_tcugS6ZPrh6Yv7_2v2mQ9O7iPzBwo0fdM>53780</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang 14 regression in HIP and CUDA mode: error: dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables.
        </td>
    </tr>

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

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

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

<pre>
    The following test case:

```cpp
template<typename Option>
struct option_range
{
        static constexpr bool defined = false;
};

#define DEFINE_OPTION_RANGE(_option, _names,_min, _max) \
template<> \
struct option_range<_option> \
{ \
        static constexpr _option min = _min; \
        static constexpr _option max = _max; \
        static constexpr bool defined = true; \
        static constexpr auto names = _names; \
}

enum Op
{
        OP1, OP2, OP3
};

//! Name of the viscous model
const char* OpName[OP3+1]
{
        "OP1",
        "OP2",
        "OP3",
};

DEFINE_OPTION_RANGE(Op, OpName, OP1, OP3);
```
fails to build with `clang++-14 -c -x hip`  or  `clang++-14 -c -x cuda`, with the error:
```
error: dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables.
DEFINE_OPTION_RANGE(Op, OpName, OP1, OP3);
^                       ~~~~~~
<stdin>:14:24: note: expanded from macro 'DEFINE_OPTION_RANGE'
        static constexpr auto names = _names; \
                              ^       ~~~~~~
```
The code works with Clang 13, again when building for either HIP or CUDA, and with any other compiler (GCC, Clang 11 to 13) when building for host.



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVU2PozgQ_TXkUuoomBDCgUOapGf70mmNZs7IAQPeNRjZJumeXz9lO0w6m7RmtVppI8vgoqr8Xn3lIKv37FvLoJZCyBPvGzBMGyipZkG0CRbbYDHtq4Vf5TB4iWHdIKhBxdy8D6ynHYP9YLjsg2jnVbRRY2lAOmmhaN-ws7fkcXKeakMNL6GUvTbsbVBwkFJAxWreswqCaAs1FRbPZJJsL-9-J5FXh-3u6fllV-xfvz3vX4qvm5cvu4CsCw8gIDkUFqbGt6LjXtDRt4CkEMT5DS3kcZHf4xLlk-uPmkjuw-EOwbMRIATHz2GJ_qkRfTsbIfDfGd2EEkmw31rR0UhwgfI3-ZhdWWEOPiSA9WOHub_N7f41tEHevxL_iD5P4ZNbIbzYOpI1GCzLI9elHDV0smLCKzqUULZUBWSDd1r1IH60rsljGMTbWxABIQ6HxXAtJPeE0ZXwBun9EkPylqCH46iGE2OSXjxMTeSPNeVCA8b6MHJRwYmbFmyHCSwuZIPrIVzCQwkPb9DyAT8BSAWf6pRjRa1zvNj5siFkSkl16eVrANNHqN4xx1gDvOeGU8F_UFdrXEMvDehxGKQyWEI1Xl8UFTvykhWF65_CZYT2ZjprzA2r_In2FUo62tPGiuBIFacHwfT8PwhmvIP7vyDZ_X15iyjXpuJuPkWbcIkbsZslaecdYPUjYstTyQ47rVQSApLcRZl4n9Od_6KJPkE_kfhF71M618m0c7zERoGTVH9pXwG5LRMII5eLhuK8ObWs9_Vmp73NJ0NFpuCP51dbXPn37WbKnHNB-3eQTqOU3cAFvmCKvuS51Tr7D20R21vSO_5bqc38qtfdPquyqEqjlM4MN4JlZ1dLUKxRTGtXf72DZbFYXG4OuDz9f3U7G5XIWmMGbZvKTa0GwzQe5hgePAhxnB4Pg5J_stLgkWs92r-dpzhK1otZm1VhGZX1ipCSRqsljdN1FNOkXq-qtK4TspgJemBCZzjacBz17ATOhR1N8XbGM7IguMKQhGS5TOZxGKcsXiSM1atwxdbBcsE6nC5zi2MuVTNTmYN0GBuNHwXXRl8-Ugx30zPmrkP_WLutVNn-IGQnjzN3deag_wTjOWem">