https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89051
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEW Assignee|marxin at gcc dot gnu.org |unassigned at gcc dot gnu.org --- Comment #10 from Martin Liška <marxin at gcc dot gnu.org> --- I spent quite some time with that and it's much complicated. Basic problem I face is that there are 2 situations: 1) -Wno-error=pedantic - in that situation -Wpedantic should not be set (because it's not enabled before) 2) -Werror -Wno-error=implicit - here -Wimplicit should be set + all sub-options So it definitely needs to go through handle_generate_option: #0 set_option (opts=0x271a920 <global_options>, opts_set=0x0, opt_index=179, value=1, arg=0x0, kind=4, loc=0, dc=0x271e080 <global_diagnostic_context>) at /home/marxin/Programming/gcc/gcc/opts-common.c:1373 #1 0x0000000001af202b in handle_option (opts=0x271a920 <global_options>, opts_set=0x271b8a0 <global_options_set>, decoded=0x7fffffffd220, lang_mask=3120, kind=4, loc=0, handlers=0x7fffffffd8b0, generated_p=true, dc=0x271e080 <global_diagnostic_context>) at /home/marxin/Programming/gcc/gcc/opts-common.c:1098 #2 0x0000000001af2165 in handle_generated_option (opts=0x271a920 <global_options>, opts_set=0x271b8a0 <global_options_set>, opt_index=179, arg=0x0, value=1, lang_mask=3120, kind=4, loc=0, handlers=0x7fffffffd8b0, generated_p=true, dc=0x271e080 <global_diagnostic_context>) at /home/marxin/Programming/gcc/gcc/opts-common.c:1130 #3 0x0000000001af4d06 in C_handle_option_auto (opts=0x271a920 <global_options>, opts_set=0x271b8a0 <global_options_set>, scode=163, arg=0x0, value=1, lang_mask=3120, kind=4, loc=0, handlers=0x7fffffffd8b0, dc=0x271e080 <global_diagnostic_context>) at options.c:16717 #4 0x00000000008ab013 in c_common_handle_option (scode=163, arg=0x0, value=1, kind=4, loc=0, handlers=0x7fffffffd8b0) at /home/marxin/Programming/gcc/gcc/c-family/c-opts.c:710 #5 0x0000000000cb282a in lang_handle_option (opts=0x271a920 <global_options>, opts_set=0x271b8a0 <global_options_set>, decoded=0x7fffffffd4b0, lang_mask=16, kind=4, loc=0, handlers=0x7fffffffd8b0, dc=0x271e080 <global_diagnostic_context>) at /home/marxin/Programming/gcc/gcc/opts-global.c:180 which implements EnabledBy dependencies. I'm retreating for now :/