https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110172
Florian Weimer <fw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fw at gcc dot gnu.org --- Comment #5 from Florian Weimer <fw at gcc dot gnu.org> --- printf is a cancellation point, and can therefore throw. Cancellation is in POSIX, it's not a glibc extension. I don't think anyone has ever brought up the need for cancellation handlers that call va_end. I do not think it is possible to write them. POSIX should probably specify that va_end is a no-op, or that it is not required if vfprintf etc. are canceled.