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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
For the reduced testcase:
union {
  long f0;
  int f1;
  long f2;
  short f3
} g_147[][3]
...

int *g_198 = &g_147[3][2].f1, *g_229 = &g_206;
static short *g_248 = &g_147[3][2].f3
...
  *func_17_l_939 = *g_248;

yes that is invalid use of the union.

The original code had a similar pattern too.
union U4 {
   const int64_t f0;
   int32_t f1;
   const volatile uint64_t f2;
   int16_t f3;
};
...
static union U4 g_147[9][3]
...
static int32_t * volatile g_198 = &g_147[3][2].f1;
...
static int16_t *g_248 = &g_147[3][2].f3;

Reply via email to