https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125376

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2026-05-19
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 64494
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=64494&action=edit
gcc17-pr125376.patch

Minimal untested fix.

That said, I think that
      tree name = DECL_NAME (arg);      if (!name)        {          char *buf
= xasprintf ("_Coro_q%u___unnamed", parm_num);
and
      if (lvname != NULL_TREE && lvd->nest_depth == 0)        buf = xasprintf
("%s", IDENTIFIER_POINTER (lvname));      else if (lvname != NULL_TREE)       
buf = xasprintf ("%s_%u_%u", IDENTIFIER_POINTER (lvname),                      
  lvd->nest_depth, lvd->bind_indx);      else        buf = xasprintf
("_D%u_%u_%u", lvd->nest_depth, lvd->bind_indx,                        
serial++);
is really a bad idea.  While at least _Coro_* is in implementation namespace,
though one can still define parameters like _Coro_q2___unnamed and get clashes,
the %s_%u_%u certainly is not in implementation namespace, one can have a and
a_1_2 variable names next to each other and get similar problems.
I think it would be nice to have a space or dot in the names (though sure, not
sure how that would work out in the debugger).

Reply via email to