https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120882
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This is certainly invalid (though compiler shouldn't ICE even on invalid input). va_start second argument in C++23 and earlier must be the identifier of the rightmost argument (only C++26 allows va_start (args)) and __builtin_va_arg_pack () has completely different purpose, it should be used usually on always_inline functions where the inline function has ... at the end of arguments and so does the function it calls, __builtin_va_arg_pack () is then passed in place of the ... arguments.