This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/57748] [4.7/4.8/4.9 Regression] ICE when expanding assignment to unaligned zero-sized array
- From: "bernd.edlinger at hotmail dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 09 Sep 2013 13:01:54 +0000
- Subject: [Bug middle-end/57748] [4.7/4.8/4.9 Regression] ICE when expanding assignment to unaligned zero-sized array
- Auto-submitted: auto-generated
- References: <bug-57748-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57748
--- Comment #35 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
Well, this bug seems to have a symmetical twin on the read side.
In the above example, if I add this:
if (x->xx[0].b != 3.14F || x->xx[1].a != 0x123456789ABCDEF)
abort ();
this gets compiled:
movdqu (%rdi), %xmm0
ucomiss .LC0(%rip), %xmm0
jp .L2
jne .L2
movdqu (%rdi), %xmm0
movabsq $81985529216486895, %rdx
movhlps %xmm0, %xmm1
movq %xmm1, %rax
cmpq %rdx, %rax
jne .L2
regardless if x is volatile or even with -fstrict-volatile-bitfields (!)