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

            Bug ID: 112087
           Summary: gimple front end: Simple testcase with array fails to
                    round trip
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

Reproducer:

$ cat t.c
long f()
{
  int a[4];
  return (long)a;
}
$ gcc/xgcc -B gcc -c t.c -S -o /dev/null -O2 -fdump-tree-ssa-gimple=gimple.c
$ cat gimple.c
long int __GIMPLE (ssa)
f ()
{
  int a[4];
  long int _1;

  __BB(2):
  _1 = (long int) _Literal (int[4] *)&a;
  a ={v} _Literal (int[4]) {CLOBBER(eol)};
  return _1;

}


$ gcc/xgcc -B gcc -c gimple.c -S -o /dev/null -O2 -fgimple
gimple.c: In function ‘f’:
gimple.c:8:35: error: expected ‘)’ before ‘*’ token
    8 |   _1 = (long int) _Literal (int[4] *)&a;
      |                                   ^~
      |                                   )
gimple.c:9:6: error: expected expression before ‘{’ token
    9 |   a ={v} _Literal (int[4]) {CLOBBER(eol)};
      |      ^
gimple.c:12:1: error: invalid types in nop conversion
   12 | }
      | ^
long int
int[4]
_1 = (long int) &a;

Reply via email to