<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylVMuu2yAQ_Rq8QbEwxI8svMij-YHcri3AxKaXmAhwetuvL_jROFGrpi0CA8OcM2cAw3T9reSKdg28Sv5u4Vej_ZjrzjrxcTXjyPTcaQPPvjVKM6oWDjdqJGVK2BigA0Db1rmrBWQL8NHXRtdMKxdr0_jZd9_OH2_kraXs0-g-fTM0Vg7wLtTBOgaGJwjyyQJ9kZ2DEpCFpapabV1VLVSdAC6CYyUB3ng1HoGLMNnl3jAQ5oclQy1ukotXOFbkmSEMZj0PyvcvK4f7fxb8O-grOhfJQutRZGB4cKmq8ch9pJuWNXwXphNqDAnwFurezXF-qgu2dIdAeoCAHAaBgTkOycPxYkAEV36vjRHcPQOTGXj6AzC-I09QaU7Vcw53UjyTDn6vSiEzyo4IXyZQElCye8Ddd3q-z8udjOqS1BuyoRHtXatNuTVOXFa7qDeqfPptpGt7FnN98ROlbnO3uhr9JYTDR2ltL_yZHVNSEBK1JUVFtsZJRgVKs5qllGFK8iLP6ixDxZpEijKhbOmzAhjzvqa-8-lF_x9clhhhXxMfH_k-JpykeUYTktPizLIErJG4UKniwBMeg8iUAyXrG-sXlbTO3heptbLphJi0Tvs0yXXSqWFl__mwDcfzN8_Xr96taMimHFL5AfwFcE0>53833</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[CUDA] clang picks wrong constexpr constructor for constexpr variables.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
cuda
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
Artem-B
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Artem-B
</td>
</tr>
</table>
<pre>
clang picks wrong constexpr constructor for global constexpr variables.
https://godbolt.org/z/fxT3ThabE
```c++
struct S {
int i;
__host__ constexpr S(int _i): i(_i+7) {}
__device__ constexpr S(int _i): i(_i-3) {}
};
struct C {
int i;
__host__ C(int _i): i(_i+7) {}
__device__ C(int _i): i(_i-3) {}
};
constexpr S s(3);
__global__ void kernel(int* out) {
out[0] = C(3).i; // 0 - correct
out[1] = S(3).i; // 0 - correct.
S local(3);
out[2] = local.i; // 0 - correct
out[3] = s.i; // 10 - incorrect
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVMmS2yAQ_Rp0oaxisS35oIOX-Ac8OasQYIkMFi5AziRfH9ASy65JxQkFApp-r1-zqDLiR8E1a2t4Vfzdwe_WhDE3rfPy42qHke24NxaeQ6u1qZieOdyYVazS0qUAHQDaNt5fHaBbQI6h1kZURvvU2DrMfoZ2_nijbw2rvgzu43eNhsoB2cXaW4fA8ARBNlpgKKr1UAE6s5RlY5wvy5mqEyB5dCwVIJugJiBIHie7LBh6wuwwZxDyprh8hWNBnxniYNLzoHz_snK4_2_Bf4K-onOWLHQBRXuGB5eyHI48RLoZJeC7tK3UQ0hAttB0forzW120rXYIrA4Q0EMvMDKnMXk4XAyI4CLstbWS-2cgnoCnvwDTO_IEteFMP-dwJyUTae_3qhQ6odyACGUE4YhS7QPuvtPTfZ7vZCIKKjZ0wxKvvJZFoN9_PWxjhH95gZ89vaSzunh6eco3XZVycwkTrW9Tt7ha8y0qJkflXCfDsR9XNKc0aQpE1isiMpIzwQRZYoYzzLINwoQjnGORaFZJ7aJyQAjvBAtd0J-ogiASKl4SjEKfUk5X2ZphmrH8XK0xWCJ5YUqnUUL8GyS26NVUXe3ColbOu_sic07VrZRjpK318rLYjcFY5xtji9GY9FkUfQq_AEOhWsA">