From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id A842C3858C62; Thu, 31 Aug 2023 08:42:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A842C3858C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1693471329; bh=DSdDWwVIJbNg5XAVzD7FqRAH20xsinyAwWo0lRWqGrI=; h=From:To:Subject:Date:From; b=d4xH9ofKzL1tCoyo/Bm3GVAaqFSCOWUA61ZLg/MNK0SKoL6CCedMlffBzbm2WIQDe s0e639Y+dqqpEd1oEJBS2O6Pwvlxr1//9Xqo9+WoGEizqL6lOXpUj0/HihjVbgUkZO CqrMIOFE+dh2ZRHPwCKIvDZxxE/YUjxIgkdLiycs= From: "shaohua.li at inf dot ethz.ch" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/111256] New: Wrong code at -O2/3/s since r10-1615-g75efe9cb1f8 Date: Thu, 31 Aug 2023 08:42:07 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: shaohua.li at inf dot ethz.ch X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D111256 Bug ID: 111256 Summary: Wrong code at -O2/3/s since r10-1615-g75efe9cb1f8 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: shaohua.li at inf dot ethz.ch CC: rguenth at gcc dot gnu.org Target Milestone: --- gcc at -O2/3/s produces the wrong code. Bisected to r10-1615-g75efe9cb1f8 Compiler explorer: https://godbolt.org/z/WPzEMoW6e $ cat a.c int printf(const char *, ...); int a, d, e, g; long b, h; long i() { b++; return b; } int l(int m[], int p[]) { if (d) for (; e; e++) { m[4] =3D m[0] =3D m[1] ^ m[2] ^ m[5]; m[7] =3D m[3] ^ m[6]; m +=3D 4; } m[6] =3D m[0] ^ 1; m[7] =3D m[1] ^ m[2] ^ m[7]; m[9] =3D m[3] ^ m[8]; return 1; } int fn3() { int j[] =3D {0, 7, 0, 0, 5, 0, 0, 8, 0, 0}; int k[17]; int c =3D l(j, k); return c; } int main() { for (; h <=3D 3; h =3D fn3() + h) { long n[2]; for (; i() < 2;) n[g] =3D 508; for (; (int)n[0] < 2;) { char o[] =3D {3, 4, 6, 3, 0, 0, 5, 6, 6, 1, 7, 0, 0, 0, 0, 0}; char *f =3D o; for (; *f; ++f) ; } } printf("%X\n", a); } $ $ gcc -O0 a.c && ./a.out 0 $ gcc -O2 a.c % ./a.out (Timeout)=