https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70549
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Well, 4.9 did not fix this, on the reduced: struct A { float x; float y; }; A a, b, c; int d, e; A bar (); void foo (A, A); inline A operator/ (A, A p2) { if (p2.x) return a; } struct B { A dval; }; int baz (A, B, A, int); void test () { B q; A f, g, h, k; h.x = 1.0; f = h; struct A i, j = f; do { i = bar (); g = i / j; foo (g, c); int l = baz (k, q, b, e); if (l) goto cleanup; j = i; } while (d); cleanup:; } with -O2 -fPIC -fno-schedule-insns -mno-lra I can still reproduce it even with r219720; GCC 5 is fine, because -mno-lra has been removed in r219734. GCC 4.9 is not upstream supported either, this note is mainly for those still maintaining 4.8 or 4.9 aarch64 branches.