https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104648
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Target Milestone|--- |12.0 CC| |hubicka at gcc dot gnu.org, | |marxin at gcc dot gnu.org Status|UNCONFIRMED |NEW Last reconfirmed| |2022-02-23 Keywords| |error-recovery, | |ice-checking Component|c++ |ipa --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- VTV adds its init function via #0 cgraph_node::add_new_function (fndecl=<function_decl 0x7ffff66a0900 _GLOBAL__sub_I.00099_t.ii>, lowered=false) at /home/rguenther/src/gcc3/gcc/cgraphunit.cc:517 #1 0x0000000000f91bb4 in vtv_generate_init_routine () at /home/rguenther/src/gcc3/gcc/cp/vtable-class-hierarchy.cc:1192 #2 0x0000000000cb753a in cxx_post_compilation_parsing_cleanups () at /home/rguenther/src/gcc3/gcc/cp/decl2.cc:5421 #3 0x000000000181dd1f in compile_file () at /home/rguenther/src/gcc3/gcc/toplev.cc:488 but then compile_file () returns early and we run into 40 #if CHECKING_P 41 toplev.finalize (); 42 #endif in main(). I suppose that should simply be cut when seen_error (). Not sure why the above is #if CHECKING_P rather than if (flag_checking) either.