Issue |
123946
|
Summary |
va_start doesn't like precompiled headers
|
Labels |
new issue
|
Assignees |
|
Reporter |
Alcaro
|
```
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
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs