------- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca 2007-02-04 17:37 ------- Subject: Re: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
> Can you try the following C code? > > double f(void) > { > long long t = -1; > double t1; > __builtin_memcpy(&t1, &t, sizeof(long long)); > return t; > } Didn't cause a problem. The constant was pushed to memory: (insn 10 9 11 (set (reg:DI 70) (plus:DI (reg:DI 27 %r27) (high:DI (symbol_ref/u:DI ("*L$C0000") [flags 0x2])))) -1 (nil) (nil)) (insn 11 10 12 (set (reg/f:DI 69) (mem/u/c:DI (lo_sum:DI (reg:DI 70) (unspec:DI [ (symbol_ref/u:DI ("*L$C0000") [flags 0x2]) ] 2)) [0 S8 A64])) -1 (nil) (expr_list:REG_EQUAL (symbol_ref/u:DI ("*L$C0000") [flags 0x2]) (nil))) (insn 12 11 13 (set (reg:DF 66 [ <result> ]) (mem/u/c/i:DF (reg/f:DI 69) [3 S8 A64])) -1 (nil) (expr_list:REG_EQUAL (const_double:DF -1.0e+0 [-0x0.8p+1]) (nil))) Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30634