This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/59163] [4.8/4.9 Regression] program compiled with g++ -O3 segfaults
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 29 Nov 2013 16:35:11 +0000
- Subject: [Bug target/59163] [4.8/4.9 Regression] program compiled with g++ -O3 segfaults
- Auto-submitted: auto-generated
- References: <bug-59163-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59163
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For stores I think the patch already allows that, that is the
if (GET_CODE (*x) == SET && &SET_DEST (*x) == data)
return 1;
in there (the reason why I've added it was that for the misaligned store insns
with UNSPEC_STOREU the misaligned MEM is in SET_DEST and SET_SRC just contains
some rtl with UNSPEC_STOREU embedded somewhere in it.
So, would you like:
if (GET_CODE (*x) == SET && (&SET_DEST (*x) == data || &SET_SRC (*x) ==
data))
return 1;
? That would IMHO handle simple loads from misaligned MEM too.