1c { dg-do compile } 2* Date: Fri, 17 Apr 1998 14:12:51 +0200 3* From: Jean-Paul Jeannot <jeannot@gx-tech.fr> 4* Organization: GX Technology France 5* To: egcs-bugs@cygnus.com 6* Subject: identified bug in g77 on Alpha 7* 8* Dear Sir, 9* 10* You will find below the assembly code of a simple Fortran routine which 11* crashes with segmentation fault when storing the first element 12* in( jT_f-hd_T ) = Xsp 13* whereas everything is fine when commenting this line. 14* 15* The assembly code (generated with 16* -ffast-math -fexpensive-optimizations -fomit-frame-pointer -fno-inline 17* or with -O5) 18* uses a zapnot instruction to copy an address. 19* BUT the zapnot parameter is 15 (copuing 4 bytes) instead of 255 (to copy 20* 8 bytes). 21* 22* I guess this is typically a 64 bit issue. As, from my understanding, 23* zapnots are used a lot to copy registers, this may create problems 24* elsewhere. 25* 26* Thanks for your help 27* 28* Jean-Paul Jeannot 29* 30 subroutine simul_trace( in, Xsp, Ysp, Xrcv, Yrcv ) 31 32c Next declaration added on transfer to gfortran testsuite 33 integer hd_S, hd_Z, hd_T 34 35 common /Idim/ jT_f, jT_l, nT, nT_dim 36 common /Idim/ jZ_f, jZ_l, nZ, nZ_dim 37 common /Idim/ jZ2_f, jZ2_l, nZ2, nZ2_dim 38 common /Idim/ jzs_f, jzs_l, nzs, nzs_dim, l_amp 39 common /Idim/ hd_S, hd_Z, hd_T 40 common /Idim/ nlay, nlayz 41 common /Idim/ n_work 42 common /Idim/ nb_calls 43 44 real Xsp, Ysp, Xrcv, Yrcv 45 real in( jT_f-hd_T : jT_l ) 46 47 in( jT_f-hd_T ) = Xsp 48 in( jT_f-hd_T + 1 ) = Ysp 49 in( jT_f-hd_T + 2 ) = Xrcv 50 in( jT_f-hd_T + 3 ) = Yrcv 51 end 52