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

Reply via email to