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&)"
   >

Reply via email to