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