https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97440
Bug ID: 97440 Summary: aarch64: Wrong code with -Os -fmodulo-sched -fno-dce -fno-strict-aliasing Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- Created attachment 49376 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49376&action=edit working assembly at r7-1512 AArch64 GCC miscompiles the following testcase: static int a, b, c; int *d = &c; int **e = &d; int ***f = &e; int main() { int h; for (a = 2; a; a--) for (h = 0; h <= 2; h++) for (b = 0; b <= 2; b++) ***f = 6; if (b != 3) __builtin_abort(); } with -Os -fmodulo-sched -fno-dce -fno-strict-aliasing since r7-1513-g1dc8d15bc6d7d55c7731093e0a8f280fc5477381. The issue goes away if any one of these options are removed.