<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">