<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/113125>113125</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
nvcc cannot handle clang builtin
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ye-luo
</td>
</tr>
</table>
<pre>
After merging https://github.com/llvm/llvm-project/pull/111516, I started to see
```
$ nvcc -allow-unsupported-compiler -ccbin=clang++ main.cu
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits(2967): error: type name is not allowed
bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t)
^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits(2967): error: type name is not allowed
bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t)
^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits(2967): error: identifier "__reference_converts_from_temporary" is undefined
bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t)
^
3 errors detected in the compilation of "main.cu".
```
`main.cu`
```
#include <type_traits>
int main() {}
```
My clang setting
```
$ clang++ -v
clang version 20.0.0git (https://github.com/llvm/llvm-project.git ed7868de03c7b93809f87ed1a01103b926564feb)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /soft/llvm/main-patched/bin
Build config: +assertions
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/13
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
Found CUDA installation: /usr/local/cuda-12.6, version 12.6
Found HIP installation: /opt/rocm-6.2.0, version 6.2.41133
```
I understand that nvcc needs to address this issue by supporting clang 19 and beyond but it takes time. I'm wondering if there is a way to workaround this issue and unblock me from using clang in development.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsVs9v6zYM_muUCxHDlhzHPuTQNPPWw4BhezsHskQ7WmXJ0I-0-e8H2UmbYV3xHrCHXVYUceyQH8nP_Ehx79VgEHdksyebw4rHcLJud8G1jnbVWXnZPfQBHYzoBmUGOIUwecIeCG0JbQcVTrHLhB0JbbU-3y7rydk_UARC2ylqTWhbFMWmqAh9hCfwgbuAEoIFj0jyA8kfSJVf_5dbWoI5CwFrrrV9WUfj4zTZ5LYWdpyURgdrITplCDsIzc1A6J7QPYxcmUzEG0wbvUtJqS6lKwSh7WtdHatyrZWJr-vBxJQdI7TNsr9_KCN0lEhoKxb8m3G4THgMjqvgCa1pU20JbQh7AHTOuvQlWYDhI4LyYGyAuRKUS2bw9tdZq-F44GbQCIQd4Hh02KNDI_AorDmjC_7YOzseA46TddxdCK2PX6bE5vFX9MeQYi-wZPPDtfT_CfivCVASTVC9QgeE0q-qiiauopHYK_PG1HcliC35epAYUCRZKgPhhLDIjAdlDdg-VXCTFqXZx6Kt8pvJ3aO_yppd-QTCHu8ZZNeklAmzhAmtCW2AbPdke_gQ6-cLzLoHjyEoM_zjHLmfDuvz8nzxPKPzqTyaZ3mWDyoAofW3TbgseaHc1lUtMWdi2zWszpu-3qIseF4UOesaWm2qssfu7SV84W7AkHrk2orRPBv7Yu5acrE7OeQSRitRJ-vJevW6_PRkfOBaozyoudkIbb3tw3uWicX1xIM4oSS0TZNydtxHpSUIa3o1LI577j269KL9YtLaaCQIbqSSPCD8-PgIaok398M13tcJq_gOmGzB_A310rL_BtjjW2pj1EElL_YAGWF7UuZjVX5mxejVjNHPzF7f7F5vhm8lfBZ04e7x98PDJ1VawdOiFVHydUGzedfeGny-v4P66emXj5DslPrHWTGuq4xm-T1EelAWBWMf62zpyXl0OR-4kRBOPCw73CBKn7Y9l9Kh9xBOyoPyPiJ0F7hu9nS6WGRZNJAAOrzYdIkBVIDAn9FDUCNm8ETodoQXm4IlN9WnieXmRcPhhV9SsBfrnrmby72Ll4Cj6bQVzzAipKEJ0b_HVgYknlHbaUQTrnNuJXdMNqzhK9wVW9qUdUXzfHXaFSXt6AZ7VtYF39KGsrpnzaYSG0rzRtYrtaM5LYucFnm5yfM8KzYdNpXgFW6F4HVByhxHrnSWVJtZN6zmPHdFwQq6WWneofa305nbzaOni4MnZa6VD_7dL6igcTcTLrhJ-_bEjdR4LayLSgdlVtHp3Tcf4uac_KzmOa3zjv4ZAAD__-DlJYc">