https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88130
Bug ID: 88130 Summary: [9 Regression] ICE in copy_function_or_variable, at lto-streamer-out.c:2315 since r260970 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: hubicka at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat streamer.ii class a { public: static const long b = 1; }; struct c { enum d { e }; }; class C; class f { public: f(c::d); template <typename g> C operator<=(g); }; class C { public: template <typename h> void operator!=(h &); }; void i() { f j(c::e); try { j <= 0 != a::b; } catch (...) { } } $ g++ -flto streamer.ii during IPA pass: static-var lto1: internal compiler error: in copy_function_or_variable, at lto-streamer-out.c:2315 0x6259ca copy_function_or_variable /home/marxin/Programming/gcc/gcc/lto-streamer-out.c:2315 0xac9986 lto_output() /home/marxin/Programming/gcc/gcc/lto-streamer-out.c:2464 0xb337fe write_lto /home/marxin/Programming/gcc/gcc/passes.c:2593 0xb3713a ipa_write_optimization_summaries(lto_symtab_encoder_d*) /home/marxin/Programming/gcc/gcc/passes.c:2805 0x78279f do_stream_out /home/marxin/Programming/gcc/gcc/lto/lto.c:2355 0x78d96f stream_out /home/marxin/Programming/gcc/gcc/lto/lto.c:2406 0x78d96f lto_wpa_write_files /home/marxin/Programming/gcc/gcc/lto/lto.c:2535 0x78d96f do_whole_program_analysis /home/marxin/Programming/gcc/gcc/lto/lto.c:3252 0x78d96f lto_main() /home/marxin/Programming/gcc/gcc/lto/lto.c:3413