<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/123946>123946</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
va_start doesn't like precompiled headers
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Alcaro
</td>
</tr>
</table>
<pre>
```
cmake_minimum_required(VERSION 3.16)
project(jnipch)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_COMPILER clang++-19)
set(CMAKE_CXX_FLAGS -stdlib=libc++)
file(WRITE "pch.h" "
#include <functional>
")
file(WRITE "main.cpp" "
#include <stdarg.h>
void NewObject(int arg, ...) {
va_list args;
va_start(args, arg);
va_end(args);
}
")
add_library(jnipch SHARED main.cpp)
target_precompile_headers(jnipch PRIVATE "pch.h")
```
Expected: Compile properly
Actual:
```
[ 33%] Building CXX object CMakeFiles/jnipch.dir/cmake_pch.hxx.pch
[ 66%] Building CXX object CMakeFiles/jnipch.dir/main.cpp.o
main.cpp:5:14: error: cannot initialize a parameter of type '__va_list_tag *' with an lvalue of type 'va_list' (aka '__va_list_tag[1]')
5 | va_start(args, arg);
| ^~~~
/opt/compiler-explorer/clang-19.1.0/lib/clang/19/include/__stdarg_va_arg.h:17:48: note: expanded from macro 'va_start'
17 | #define va_start(ap, param) __builtin_va_start(ap, param)
| ^~
main.cpp:6:12: error: cannot initialize a parameter of type '__va_list_tag *' with an lvalue of type 'va_list' (aka '__va_list_tag[1]')
6 | va_end(args);
| ^~~~
/opt/compiler-explorer/clang-19.1.0/lib/clang/19/include/__stdarg_va_arg.h:19:37: note: expanded from macro 'va_end'
19 | #define va_end(ap) __builtin_va_end(ap)
| ^~
2 errors generated.
```
https://godbolt.org/z/9vzoEabPj
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVk1v4zYQ_TXjC2FBoizJOuhAf6gNuptsne02N4ESxzY3lKhSlDfJIb-9oKR8J-iih6JBAAvkm9Gb92bG5l0nDw1iBtEKos2M9_aoTcZUxY2elVrcZhD707_PqppfY1HLRtZ9XRj8q5cGBdDlt-3u8uzinIReEANNwWet0d-xskCX3xvZVsfxFHzWoTtcf2a_bYv11VVx-ZWdb9huQ2g4Yj4CFLvt73-c7bYbcnH-PnJ98fnL2aftjlSKNwegK6CreZC-D84_sV8uybyzQskSwo2SZTWGPFLdS4VAl3_uzr5uCVDaVkfvCJS6Z4egoWwq1QskEK73fVNZqRuuINwOt3RM9DpLzWXjVW37UaLOCm4O3nFK47OTloKc44-LclJUNpZwcwC6Jp7nAU0JJCvwGSGEnHihZDfcdxAOpydedJYbFzmc0vUYnU73YxQ24hEw3UCyeV4I-IwLUShZGm5uH50ll78y58pTXQ5suTmgLVqDla5bqbA4Ihdouqe4L7uzb-ylstOLnrUc-Gx702JlUUDIyHpMRlqjWzTqdkSwyvZOd_Y6OFqRMAQaQbQhq14qIZsDWV9dET1oSdaf-TXmUmEHNB9peUIaoPnY6gOvmxvPNfCYLo7_VboHcTwNPntUKmQRhCxYuMrQGG3cQ8WbRlsiG2klV_IOCSctN7xGi4boPbG3LRKgSVFMZheWHwhQBjQhP6Q9Et4QdeKqx-fwCexAzuhr_iYHRKsAog3QZPTBdUZEIFmTqUf-qY3IAIZoe39_P3ROrlvrxBxdM3O8aZU2OAjsZnQepF7g-UBzN4TTIdDcDW0-zQTQvCjGoXBkp9lgQQIhWyydYo22OEh40_JGoCB7o2tS88roqfCJeDLyDJKRJw0F7mWDL0prXWGD3m6wiqLspbKyKT7EvKn9pcOx40r_rw7Hz-19ZwX8566mELIw-TlXB74PnqZvPZ3qad8Y-eziRY0_8zc5TEc7O3LABg23KLy3m-tobdu5tURzoPlBi1Ir62k3Nfkd0Dw93ektL798n4ksFGmY8hlmQRImURQlcTo7ZkJQykW6Xy7CRMRLjjyNfbHgIg34MsZ4JjPq08gPKA0WlC5SL0z2ZRpSP8WSRssAYeFjzaXylDrV7t0z2XU9ZgEN00U8U7xE1Q3f_5Q2-IMMt24VR5uZyVzQvOwPHSx810TdUxorrcLsYSyI0Ng1QBNLlLx2C_ph8Qsybf5Zb1T2ShJpj33pVbp2zaJODx_zx58P-cDH7dOJ8CmjfwcAAP__N56d4A">