https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59627
vries at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vries at gcc dot gnu.org --- Comment #2 from vries at gcc dot gnu.org --- At original: ... { struct A a; void omp declare reduction operator+~1A (struct A &); struct A a; #pragma omp parallel reduction(+:a) { { } } } ... We assert when trying to get the discriminator for the omp-declare-reduction function: ... (gdb) #5 0x00000000009ad52b in discriminator_for_local_entity (entity=0x7ffff61b1380) at src/gcc/cp/mangle.c:1762 1762 gcc_unreachable (); (gdb) call debug_generic_expr (entity) omp declare reduction operator+~1A (gdb) call debug_tree (entity) <function_decl 0x7ffff61b1380 omp declare reduction operator+~1A type <function_type 0x7ffff619af18 type <void_type 0x7ffff605a150 void VOID align 8 symtab 0 alias set -1 canonical type 0x7ffff605a150 pointer_to_this <pointer_type 0x7ffff605a2a0>> QI size <integer_cst 0x7ffff6034f48 constant 8> unit size <integer_cst 0x7ffff6034f60 constant 1> align 8 symtab 0 alias set -1 canonical type 0x7ffff619af18 arg-types <tree_list 0x7ffff6192e60 value <reference_type 0x7ffff619ac78> chain <tree_list 0x7ffff6048c80 value <void_type 0x7ffff605a150 void>>>> used ignored external autoinline decl_0 QI file omp.C line 6 col 9 align 8 context <function_decl 0x7ffff619e7e0 foo> attributes <tree_list 0x7ffff6192ed8> full-name "void omp declare reduction operator+~1A(A&)" >