1* Date: Wed, 25 Jun 1997 12:48:26 +0200 (MET DST) 2* MIME-Version: 1.0 3* From: R.Hooft@EuroMail.com (Rob Hooft) 4* To: g77-alpha@gnu.ai.mit.edu 5* Subject: Re: testing 970624. 6* In-Reply-To: <199706251027.GAA07892@churchy.gnu.ai.mit.edu> 7* References: <199706251018.MAA21538@nu> 8* <199706251027.GAA07892@churchy.gnu.ai.mit.edu> 9* X-Mailer: VM 6.30 under Emacs 19.34.1 10* Content-Type: text/plain; charset=US-ASCII 11* 12* >>>>> "CB" == Craig Burley <burley@gnu.ai.mit.edu> writes: 13* 14* CB> but OTOH I'd like to see more problems like this on other 15* CB> applications, and especially other systems 16* 17* How about this one: An application that prints "112." on all 18* compilers/platforms I have tested, except with the new g77 on ALPHA (I 19* don't have the new g77 on any other platform here to test)? 20* 21* Application Appended. Source code courtesy of my boss..... 22* Disclaimer: I do not know the right answer, or even whether there is a 23* single right answer..... 24* 25* Regards, 26* -- 27* ===== R.Hooft@EuroMail.com http://www.Sander.EMBL-Heidelberg.DE/rob/ == 28* ==== In need of protein modeling? http://www.Sander.EMBL-Heidelberg.DE/whatif/ 29* Validation of protein structures? http://biotech.EMBL-Heidelberg.DE:8400/ ==== 30* == PGPid 0xFA19277D == Use Linux! Free Software Rules The World! ============= 31* 32* nu[152]for% cat humor.f 33 PROGRAM SUBROUTINE 34 LOGICAL ELSE IF 35 INTEGER REAL, GO TO PROGRAM, WHILE, THEN, END DO 36 REAL FORMAT(2) 37 DATA IF,REAL,END DO,WHILE,FORMAT(2),I2/2,6,7,1,112.,1/ 38 DO THEN=1, END DO, WHILE 39 CALL = END DO - IF 40 PROGRAM = THEN - IF 41 ELSE IF = THEN .GT. IF 42 IF (THEN.GT.REAL) THEN 43 CALL FUNCTION PROGRAM (ELSE IF, GO TO PROGRAM, THEN) ! { dg-error "Type mismatch in argument" } 44 ELSE IF (ELSE IF) THEN 45 REAL = THEN + END DO 46 END IF 47 END DO 48 10 FORMAT(I2/I2) = WHILE*REAL*THEN 49 IF (FORMAT(I2) .NE. FORMAT(I2+I2)) CALL ABORT 50 END ! DO 51 SUBROUTINE FUNCTION PROGRAM (REAL,INTEGER, LOGICAL) 52 LOGICAL REAL 53 REAL LOGICAL 54 INTEGER INTEGER, STOP, RETURN, GO TO 55 ASSIGN 9 TO STOP ! { dg-warning "ASSIGN" "" } 56 ASSIGN = 9 + LOGICAL 57 ASSIGN 7 TO RETURN ! { dg-warning "ASSIGN" "" } 58 ASSIGN 9 TO GO TO ! { dg-warning "ASSIGN" "" } 59 GO TO = 5 60 STOP = 8 61 IF (.NOT.REAL) GOTO STOP ! { dg-warning "Assigned GOTO" "" } 62 IF (LOGICAL.GT.INTEGER) THEN 63 IF = LOGICAL +5 64 IF (LOGICAL.EQ.5) ASSIGN 5 TO IF ! { dg-warning "ASSIGN" "" } 65 INTEGER=IF 66 ELSE 67 IF (ASSIGN.GT.STOP) ASSIGN 9 TO GOTO ! { dg-warning "ASSIGN" "" } 68 ELSE = GO TO 69 END IF = ELSE + GO TO 70 IF (.NOT.REAL.AND.GOTO.GT.ELSE) GOTO RETURN ! { dg-warning "Assigned GOTO" "" } 71 END IF 72 5 CONTINUE 73 7 LOGICAL=LOGICAL+STOP 74 9 RETURN 75 END ! IF 76* nu[153]for% f77 humor.f 77* nu[154]for% ./a.out 78* 112.0000 79* nu[155]for% f90 humor.f 80* nu[156]for% ./a.out 81* 112.0000 82* nu[157]for% g77 humor.f 83* nu[158]for% ./a.out 84* 40. 85