te07@edrc.cmu.edu (Thomas Epperly) (11/29/89)
The following short fortran program gives a Fatal error in: /usr/lib/fcom1.31 Segmentation fault Nice error message! I really don't know fortran, so I am not sure if this is a bug in the compiler or not. Line seven is the line which causes the compiler to die(the one with the MOD). PROGRAM test IMPLICIT none INTEGER level, igr igr = 1 level = 2 igr = MOD(level,INT(10.0)) END Lastly, I am posting this for one of the users on our system; and I don't know why he wrote the MOD that way. Tom Epperly
khb@chiba.Sun.COM (Keith Bierman - SPD Advanced Languages) (12/01/89)
In article <7120@pt.cs.cmu.edu> epperly@osnome.che.wisc.edu (Tom Epperly) writes: >The following short fortran program gives a >Fatal error in: /usr/lib/fcom1.31 Segmentation fault >Nice error message! I really don't know fortran, so I am not sure if this >is a bug in the compiler or not. Line seven is the line which causes the >compiler to die(the one with the MOD). > > PROGRAM test > IMPLICIT none > INTEGER level, igr > igr = 1 > level = 2 > igr = MOD(level,INT(10.0)) > END > >Lastly, I am posting this for one of the users on our system; and I don't know >why he wrote the MOD that way. > Runs fine on a sun4 with f77v1.3. The code is legal. I assume this is a contrived example (cut down from something large no doubt), as there is no file written (screen output) or anything else to get a handle on ... so the compiler may try to optimize the whole program away (default on 1.31 is -O1, if memory serves ... so you might try -O0 for grins). On a MIPS box with the current MIPS compilers the correct result is also provided. Either this was a bug in the MIPS 1.31 compiler (which DEC is still selling) or it was introduced as part of the the "port". I'm afraid I don't have a DS3100 handy, so I can't provide a better explaination nor a tested workaround. Cheers Keith H. Bierman |*My thoughts are my own. !! kbierman@sun.com It's Not My Fault | MTS --Only my work belongs to Sun* I Voted for Bill & | Advanced Languages/Floating Point Group Opus | "When the going gets Weird .. the Weird turn PRO"
cdb@hpclcdb.HP.COM (Carl Burch) (12/05/89)
> The following short fortran program gives a > Fatal error in: /usr/lib/fcom1.31 Segmentation fault > Nice error message! I really don't know fortran, so I am not sure if this > is a bug in the compiler or not. I don't know about any other company's compiler lab, but around here we kind of take it for granted that any segmentation violation in system software is a bug. - Carl Burch HP Compiler Lab
carterm@bcrka80.bnr.ca (Michael Carter 1639503) (12/06/89)
In article <7120@pt.cs.cmu.edu> epperly@osnome.che.wisc.edu (Tom Epperly) writes: >The following short fortran program gives a >Fatal error in: /usr/lib/fcom1.31 Segmentation fault >Nice error message! I really don't know fortran, so I am not sure if this >is a bug in the compiler or not. Line seven is the line which causes the >compiler to die(the one with the MOD). > > PROGRAM test > IMPLICIT none > INTEGER level, igr > igr = 1 > level = 2 > igr = MOD(level,INT(10.0)) > END > We ran into a similar situation on the 3100. The problem is probably caused by the use of INT inside the MOD function. According to DEC, the MIPS Fortran compiler doesn't support (at least on the 3100) type conversion of a CONSTANT (variables work okay) within a function call, using the intrinsic conversion functions. You can use: igr = MOD (level,10) or you can use: itemp=INT(10.0) igr = MOD(level,itemp) or you can use: igr = MOD(level,INTUSE(10.0)) (where INTUSE is a user-defined conversion function (which could just call the INT function)) or you can use: temp=10.0 igr = MOD(level,INT(temp)) >Lastly, I am posting this for one of the users on our system; and I don't know >why he wrote the MOD that way. I'm not sure why anyone would want to do that either, but we tripped over the same thing, so your user's programming style isn't entirely unique :-), even though it may not be good programming practice.
lilian@mips.COM (Lilian Leung) (12/07/89)
In article <7120@pt.cs.cmu.edu> epperly@osnome.che.wisc.edu (Tom Epperly) writes: >The following short fortran program gives a >Fatal error in: /usr/lib/fcom1.31 Segmentation fault >Nice error message! I really don't know fortran, so I am not sure if this >is a bug in the compiler or not. Line seven is the line which causes the >compiler to die(the one with the MOD). > > PROGRAM test > IMPLICIT none > INTEGER level, igr > igr = 1 > level = 2 > igr = MOD(level,INT(10.0)) > END > >Lastly, I am posting this for one of the users on our system; and I don't know >why he wrote the MOD that way. > >Tom Epperly The above was a bug in our 1.31 FORTRAN compiler, but has since been fixed in our 2.0 release. -- UUCP: {ames,decwrl,prls,pyramid}!mips!lilian (or lilian@mips.com) DDD: 408-991-7848 Lilian Leung (or 408-720-1700, Ext. 848) USPS: MIPS Computer Systems, 930 Arques, Sunnyvale, CA 94086-3650