https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87500
Bug ID: 87500 Summary: ICE in discriminator_for_local_entity, at cp/mangle.c:1967 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, jakub at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- It's old ICE: $ cat ice.ii template <typename> struct a { void b() { a c; int d; #pragma omp declare reduction(+ : a : 9) #pragma omp parallel reduction(+ : c) d++; } }; main() { a<double> c; c.b(); } $ g++ ice.ii -flto -fopenmp -c ice.ii:10:6: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type] 10 | main() { | ^ during IPA pass: *free_lang_data ice.ii: In instantiation of ‘void omp declare reduction operator+(a< <template-parameter-1-1> >&) [with <template-parameter-1-1> = double]’: ice.ii:5:9: required from here ice.ii:5:9: internal compiler error: in discriminator_for_local_entity, at cp/mangle.c:1967 5 | #pragma omp declare reduction(+ : a : 9) | ^~~ 0x909f04 discriminator_for_local_entity /home/marxin/Programming/gcc/gcc/cp/mangle.c:1967 0x909f04 write_local_name /home/marxin/Programming/gcc/gcc/cp/mangle.c:2065 0x909f04 write_name /home/marxin/Programming/gcc/gcc/cp/mangle.c:964 0x909486 write_encoding /home/marxin/Programming/gcc/gcc/cp/mangle.c:825 0x9134a4 mangle_decl_string /home/marxin/Programming/gcc/gcc/cp/mangle.c:3795 0x9139c0 get_mangled_id /home/marxin/Programming/gcc/gcc/cp/mangle.c:3817 0x9139c0 mangle_decl(tree_node*) /home/marxin/Programming/gcc/gcc/cp/mangle.c:3855 0x117722d decl_assembler_name(tree_node*) /home/marxin/Programming/gcc/gcc/tree.c:691 0x11974fa assign_assembler_name_if_needed(tree_node*) /home/marxin/Programming/gcc/gcc/tree.c:5791 0x1199410 free_lang_data_in_cgraph /home/marxin/Programming/gcc/gcc/tree.c:5840 0x1199410 free_lang_data /home/marxin/Programming/gcc/gcc/tree.c:5881 0x1199410 execute /home/marxin/Programming/gcc/gcc/tree.c:5934