------- Comment #5 from kargl at gcc dot gnu dot org 2008-12-12 16:03 ------- Looking at the -fdump-tree-original, I suspect that the minus sign in the hex formatted number is redundant. To keep things short, I've removed the dt_parm setup code. _gfortran_transfer_integer probably outputs -, then converts 0x80000000000000 to -9223....
value = -0x8000000000000000; { struct __st_parameter_dt dt_parm.2; _gfortran_transfer_integer (&dt_parm.2, &value, 8); { static integer(kind=8) C.1495 = -0x8000000000000000; _gfortran_transfer_integer (&dt_parm.2, &C.1495, 8); } _gfortran_st_write_done (&dt_parm.2); } value4 = -2147483648; { struct __st_parameter_dt dt_parm.4; _gfortran_st_write (&dt_parm.4); _gfortran_transfer_integer (&dt_parm.4, &value4, 4); { static integer(kind=4) C.1499 = -2147483648; _gfortran_transfer_integer (&dt_parm.4, &C.1499, 4); } _gfortran_st_write_done (&dt_parm.4); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38504