https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84229
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> --- For reference, this is open implementation from Jessie version of glibc that trigeers the issue __fortify_function int open (const char *__path, int __oflag, ...) { if (__va_arg_pack_len () > 1) __open_too_many_args (); if (__builtin_constant_p (__oflag)) { if (__OPEN_NEEDS_MODE (__oflag) && __va_arg_pack_len () < 1) { __open_missing_mode (); return __open_2 (__path, __oflag); } return __open_alias (__path, __oflag, __va_arg_pack ()); } if (__va_arg_pack_len () < 1) return __open_2 (__path, __oflag); return __open_alias (__path, __oflag, __va_arg_pack ()); } I am testing patch to prevent signature changes here. I suppose that those functions are meant to be inlined and thus function signature changes are not that important. Still it would be nice to error on use in nonvariadic functions.