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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
            Summary|redundant load of inline    |redundant load due to
                   |function's arguments        |unions and different size
                   |                            |loads
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2024-02-21
           Severity|normal                      |enhancement

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
```
union U0 {
   int  f2;
   char  f4;
};

int g_3;
union U0 g_34 = {-1L};
char func_1() {
  int t11 = g_34.f2;
  char t1 = g_34.f4;
  g_3 = t11;
  return t1;
}
```

This is just due to unions. I am not sure if this is important to optimize
really since techincally the original code is undefined by the C/C++ standard
(though GCC does an extension which makes it defined). Unions used in this way
is not used much either.

Reply via email to