--- /dev/null
+* Date: Wed, 25 Jun 1997 12:48:26 +0200 (MET DST)
+* MIME-Version: 1.0
+* From: R.Hooft@EuroMail.com (Rob Hooft)
+* To: g77-alpha@gnu.ai.mit.edu
+* Subject: Re: testing 970624.
+* In-Reply-To: <199706251027.GAA07892@churchy.gnu.ai.mit.edu>
+* References: <199706251018.MAA21538@nu>
+* <199706251027.GAA07892@churchy.gnu.ai.mit.edu>
+* X-Mailer: VM 6.30 under Emacs 19.34.1
+* Content-Type: text/plain; charset=US-ASCII
+*
+* >>>>> "CB" == Craig Burley <burley@gnu.ai.mit.edu> writes:
+*
+* CB> but OTOH I'd like to see more problems like this on other
+* CB> applications, and especially other systems
+*
+* How about this one: An application that prints "112." on all
+* compilers/platforms I have tested, except with the new g77 on ALPHA (I
+* don't have the new g77 on any other platform here to test)?
+*
+* Application Appended. Source code courtesy of my boss.....
+* Disclaimer: I do not know the right answer, or even whether there is a
+* single right answer.....
+*
+* Regards,
+* --
+* ===== R.Hooft@EuroMail.com http://www.Sander.EMBL-Heidelberg.DE/rob/ ==
+* ==== In need of protein modeling? http://www.Sander.EMBL-Heidelberg.DE/whatif/
+* Validation of protein structures? http://biotech.EMBL-Heidelberg.DE:8400/ ====
+* == PGPid 0xFA19277D == Use Linux! Free Software Rules The World! =============
+*
+* nu[152]for% cat humor.f
+ PROGRAM SUBROUTINE
+ LOGICAL ELSE IF
+ INTEGER REAL, GO TO PROGRAM, WHILE, THEN, END DO
+ REAL FORMAT(2)
+ DATA IF,REAL,END DO,WHILE,FORMAT(2),I2/2,6,7,1,112.,1/
+ DO THEN=1, END DO, WHILE
+ CALL = END DO - IF
+ PROGRAM = THEN - IF
+ ELSE IF = THEN .GT. IF
+ IF (THEN.GT.REAL) THEN
+ CALL FUNCTION PROGRAM (ELSE IF, GO TO PROGRAM, THEN)
+ ELSE IF (ELSE IF) THEN
+ REAL = THEN + END DO
+ END IF
+ END DO
+ 10 FORMAT(I2/I2) = WHILE*REAL*THEN
+ IF (FORMAT(I2) .NE. FORMAT(I2+I2)) CALL ABORT
+ END ! DO
+ SUBROUTINE FUNCTION PROGRAM (REAL,INTEGER, LOGICAL)
+ LOGICAL REAL
+ REAL LOGICAL
+ INTEGER INTEGER, STOP, RETURN, GO TO
+ ASSIGN 9 TO STOP ! { dg-warning "ASSIGN" "" }
+ ASSIGN = 9 + LOGICAL
+ ASSIGN 7 TO RETURN ! { dg-warning "ASSIGN" "" }
+ ASSIGN 9 TO GO TO ! { dg-warning "ASSIGN" "" }
+ GO TO = 5
+ STOP = 8
+ IF (.NOT.REAL) GOTO STOP ! { dg-warning "Assigned GOTO" "" }
+ IF (LOGICAL.GT.INTEGER) THEN
+ IF = LOGICAL +5
+ IF (LOGICAL.EQ.5) ASSIGN 5 TO IF ! { dg-warning "ASSIGN" "" }
+ INTEGER=IF
+ ELSE
+ IF (ASSIGN.GT.STOP) ASSIGN 9 TO GOTO ! { dg-warning "ASSIGN" "" }
+ ELSE = GO TO
+ END IF = ELSE + GO TO
+ IF (.NOT.REAL.AND.GOTO.GT.ELSE) GOTO RETURN ! { dg-warning "Assigned GOTO" "" }
+ END IF
+ 5 CONTINUE
+ 7 LOGICAL=LOGICAL+STOP
+ 9 RETURN
+ END ! IF
+* nu[153]for% f77 humor.f
+* nu[154]for% ./a.out
+* 112.0000
+* nu[155]for% f90 humor.f
+* nu[156]for% ./a.out
+* 112.0000
+* nu[157]for% g77 humor.f
+* nu[158]for% ./a.out
+* 40.