[Bug c/99826] GIMPLE FE fails to grok pointer declarators

2024-03-07 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99826

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed||2024-03-08
 Ever confirmed|0   |1
   Keywords||rejects-valid
 Status|UNCONFIRMED |NEW

--- Comment #2 from Andrew Pinski  ---
The first issue of the placement __GIMPLE(ssa) is still there.
The second issue of _2 was fixed in GCC 12.

Confirmed.

[Bug c/99826] GIMPLE FE fails to grok pointer declarators

2021-03-30 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99826

--- Comment #1 from Richard Biener  ---
__GIMPLE(ssa) char * foo(char *p) {..}

works for the first issue.  I failed to make the "late" __GIMPLE spec work in
a straight-forward manner.  I guess we might want to change the default dumping
to prefer the above order.

The 2nd issue remains and can be seen as

char * foo (char * p)
{
  char * _2;

   :
  _2_2 = p_1(D);
  return _2_2;

}

fixing it in a generic way will likely require exposing more of grokdeclarator
and eventually generating the SSA name there directly.  Limited support
is possible of course and the workaround is to declare a decl:

  char * q;

__BB(2):
  q_2 = p_1(D);
  return q_2;

which will work at the expense of creating a decl.