https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121499
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I believe (at least from the time when I was looking into libgcobol) that the
code was full of aliasing violations everywhere.
uint128 temp = (uint128)product.i64[i] * multiplier;
product.i64[i] = *PTRCAST(uint64_t, &temp);
overflows[i+1] = *PTRCAST(uint64_t, PTRCAST(uint8_t, &temp) + 8);
just to pick one random one.