https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85718
--- Comment #5 from Richard Oliver <roliver at roku dot com> --- (In reply to Jonathan Wakely from comment #4) > So then this behaviour is correct and working as intended. Even accepting the fact that 'void *' is a valid implementation for va_args, surely the code generation is wrong in my original bug report for: 'log("Location of i: %p", &i)' as the '...' version should be selected in the generated code? 'bl _Z3logPKcz' is generated on ARM, and 'jal _Z3logPKcPv' is generated on MIPS. Surely this is independent of the internal implementation of 'va_args' as we're not actually calling that function. Commenting out the va_list forward-declaration results in the correct code being generated.