From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 905A738493CF; Thu, 12 Jan 2023 19:43:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 905A738493CF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1673552610; bh=6Ec6nH0x279L0YKu/MT0SZz8jKgMqLTejNgp2A5Ny3w=; h=From:To:Subject:Date:In-Reply-To:References:From; b=tHIVC+sgy2eKYqixtYZRZwHnbSAxwN3T1wFJIPfmiAo3IE6NJoRA/NmOppuzHPWX7 hUB4SoQNRlbWSIq6f2bi+w0hrIYI8fc0VpWjM0QeQ65/taBJ26mhMDVlHMSnKvmGA2 OrbkJtuirefC1pIebccm5Ur7w58VX1hpqB8cZUnE= From: "pinskia at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: =?UTF-8?B?W0J1ZyBpcGEvMTA4Mzg0XSBbMTMgUmVncmVzc2lvbl0gZXJyb3I6?= =?UTF-8?B?IGNvbnZlcnNpb24gb2YgcmVnaXN0ZXIgdG8gYSBkaWZmZXJlbnQgc2l6ZSBp?= =?UTF-8?B?biDigJh2aWV3X2NvbnZlcnRfZXhwcuKAmQ==?= Date: Thu, 12 Jan 2023 19:43:29 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-checking, ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: pinskia at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: 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=3D108384 --- Comment #11 from Andrew Pinski --- (In reply to Jakub Jelinek from comment #10) > If it is __builtin_clear_padding only, I'll have a look... After the __builtin_clear_padding is exposed and before the IPA passes, the= IR looks like: l_26[1].f0 =3D 4; MEM [(struct S0[2] *)&l_26 + 16B] =3D 25770065925; func_23 (l_26[1], func_2_l_27); So here is another testcase which you can reproduce it with -O3 -fno-strict-aliasing (because I voilate aliasing rules to get a similar eno= ugh IR): ``` struct S0 { int f0; short f1; unsigned f2 : 7; short f3; } func_2_l_27; int *g_389; int safe_sub_func_int16_t_s_s(void); void safe_lshift_func_uint8_t_u_s(int); void func_23(struct S0 p_24, struct S0 p_25) { int *l_1051 =3D g_389; if (safe_sub_func_int16_t_s_s()) for (;;) safe_lshift_func_uint8_t_u_s(p_24.f1); *l_1051 =3D p_25.f0; } void func_2(void) { struct S0 l_26[2]; l_26[1].f0 =3D 4; ((long long*)&l_26)[2] =3D 25770065925; func_23(l_26[1], func_2_l_27); } ```=