https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115913
--- Comment #13 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-14 branch has been updated by Lewis Hyatt <lhy...@gcc.gnu.org>: https://gcc.gnu.org/g:1e77549e1860249abafb8fc325fc4c1885b0d8c4 commit r14-11269-g1e77549e1860249abafb8fc325fc4c1885b0d8c4 Author: Lewis Hyatt <lhy...@gmail.com> Date: Sun Jan 26 18:57:00 2025 -0500 options: Adjust cl_optimization_compare to avoid checking ICE [PR115913] At the end of a sequence like: #pragma GCC push_options ... #pragma GCC pop_options the handler for pop_options calls cl_optimization_compare() (as generated by optc-save-gen.awk) to make sure that all global state has been restored to the value it had prior to the push_options call. The verification is performed for almost all entries in the global_options struct. This leads to unexpected checking asserts, as discussed in the PR, in case the state of warnings-related options has been intentionally modified in between push_options and pop_options via a call to #pragma GCC diagnostic. Address that by skipping the verification for CL_WARNING-flagged options. gcc/ChangeLog: PR middle-end/115913 * optc-save-gen.awk (cl_optimization_compare): Skip options with CL_WARNING flag. gcc/testsuite/ChangeLog: PR middle-end/115913 * c-c++-common/cpp/pr115913.c: New test.