https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93271
Bug ID: 93271 Summary: SRA producing wrong code on denormals Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: hubicka at gcc dot gnu.org Target Milestone: --- hubicka@lomikamen-jh:~$ cat t2.c #include <stdlib.h> union test {int a; float b;}; __attribute__ ((noinline)) union test set() { union test r; r.a = 0x7f842335; return r; } __attribute__ ((noinline)) void get(union test a) { if (a.a != 0x7f842335) abort (); } volatile int val; int main () { union test a = set(); while (val) a.b++; get (a); return 0; } hubicka@lomikamen-jh:~$ /aux/hubicka/trunk-install/bin/gcc -O2 -m32 t2.c hubicka@lomikamen-jh:~$ ./a.out Aborted