https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109530
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The warning is confusing but it is partly correct. Across a setjmp, you might need volatile variables. Gcc does not know that fprintf nor fclose will call longjmp.