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