------- Comment #3 from schwab at suse dot de 2008-10-21 08:36 ------- Reduced testcase:
double y, z; void foo (long x) { y = *(double *) ((long *) (x - 1) + 1); z = *(double *) ((long *) (x - 1) + 1); } $ gcc -m64 -O -c ldu.c /tmp/ccYujYhd.s: Assembler messages: /tmp/ccYujYhd.s:20: Error: operand out of domain (7 is not a multiple of 4) The insn is generated during auto-inc-dec. (insn 9 8 10 2 ldu.c:4 (set (reg:DF 122) (mem:DF (pre_modify:DI (reg/f:DI 119 [ D.1253 ]) (plus:DI (reg/f:DI 119 [ D.1253 ]) (const_int 7 [0x7]))) [0 S8 A64])) 345 {*movdf_hardfloat64} (expr_list:REG_INC (reg/f:DI 119 [ D.1253 ]) (nil))) -- schwab at suse dot de changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2008-10-21 08:36:02 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37878