https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77959
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |middle-end --- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- Looks like middle-end problem to me: Program received signal SIGSEGV, Segmentation fault. 0x0000000000ef2ddb in ix86_decompose_address (addr=0x41, out=out@entry=0x7fffffffd490) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:14954 14954 if (TARGET_64BIT && GET_MODE (addr) == DImode) (gdb) p addr $10 = (rtx) 0x41 (gdb) bt #0 0x0000000000ef2ddb in ix86_decompose_address (addr=0x41, out=out@entry=0x7fffffffd490) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:14954 #1 0x0000000000ef4ddc in ix86_legitimate_address_p (addr=<optimized out>, strict=<optimized out>) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:15668 #2 0x0000000000b1f4af in memory_address_addr_space_p (mode=mode@entry=SFmode, addr=addr@entry=0x41, as=<optimized out>) at /home/uros/gcc-svn/trunk/gcc/recog.c:1336 #3 0x0000000000874930 in adjust_address_1 (memref=memref@entry=0x7fffefdec168, mode=mode@entry=SFmode, offset=offset@entry=0, validate=validate@entry=1, adjust_address=adjust_address@entry=1, adjust_object=adjust_object@entry=0, size=4) at /home/uros/gcc-svn/trunk/gcc/emit-rtl.c:2221 #4 0x00000000008b3d1c in store_field (target=0x7fffefdec168, bitsize=32, bitpos=0, bitregion_start=<optimized out>, bitregion_end=<optimized out>, mode=SFmode, exp=0x7fffeffd8c48, alias_set=2, nontemporal=false, reverse=false) at /home/uros/gcc-svn/trunk/gcc/expr.c:6938 #5 0x00000000008afd2f in expand_assignment (to=to@entry=0x7fffeffc4a60, from=from@entry=0x7fffeffd8c48, nontemporal=<optimized out>) at /home/uros/gcc-svn/trunk/gcc/expr.c:5167 #6 0x000000000079c6ee in expand_gimple_stmt_1 (stmt=0x7fffeffc88c0) at /home/uros/gcc-svn/trunk/gcc/cfgexpand.c:3649 (gdb) f 3 #3 0x0000000000874930 in adjust_address_1 (memref=memref@entry=0x7fffefdec168, mode=mode@entry=SFmode, offset=offset@entry=0, validate=validate@entry=1, adjust_address=adjust_address@entry=1, adjust_object=adjust_object@entry=0, size=4) at /home/uros/gcc-svn/trunk/gcc/emit-rtl.c:2221 2221 && (!validate || memory_address_addr_space_p (mode, addr, (gdb) list 2216 size = defattrs->size; 2217 2218 /* If there are no changes, just return the original memory reference. */ 2219 if (mode == GET_MODE (memref) && !offset 2220 && (size == 0 || (attrs.size_known_p && attrs.size == size)) 2221 && (!validate || memory_address_addr_space_p (mode, addr, 2222 attrs.addrspace))) 2223 return memref; 2224 2225 /* ??? Prefer to create garbage instead of creating shared rtl. (gdb) p addr $8 = (rtx) 0x41 Corrupted RTX is passed from adjust_address_1.