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

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

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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
32bit i686 long long has an alignment of 4 while most other targets have an
alignment of 8. 

Which you could see via sizeof.

```
int tt = sizeof(struct b);
int tt1 = sizeof(struct d);
```

i?86:
```
tt:
        .long   8
...
tt1:
        .long   12
```

RISCV32:
```
tt:
        .word   8
...
tt1:
        .word   16
```

Basically in the i?86 case, i.h.f++ will modify byte 4 of the union while on
most other targets, it will modify byte 8.

Reply via email to