------- Comment #6 from jvdelisle at gcc dot gnu dot org 2006-08-19 03:29 ------- Here is a comparison of no optimization and with -O1. Does this code look the same on x86-64 that is not FreeBSD?
Code with no optimization: This does not work. call _gfortran_st_write_done movq $.LC0, -424(%rbp) movl $8, -416(%rbp) movl $10, -428(%rbp) movq $1, -392(%rbp) movl $512, -432(%rbp) leaq -432(%rbp), %rdi call _gfortran_st_write Code with -O1: This works call _gfortran_st_write_done movq $.LC0, 8(%rsp) movl $8, 16(%rsp) movl $10, 4(%rsp) movq $1, 40(%rsp) movl $512, (%rsp) movq %rsp, %rdi call _gfortran_st_write -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28747