980519-2.f

来自「gcc3.2.1源代码」· F 代码 · 共 48 行

F
48
字号
* 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 )      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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?