pmontgom@sdcrdcf.UUCP (Peter Montgomery) (09/07/84)
C The SAVE statement in the main program references
C a non-existent common block, and should cause a
C compile time error.
C Subroutine doif has a missing "end if". It gets a
C misleading message about a branch to label 10
C from outside the block, and an undefined label
C during assembly.
C Subroutine test has conflicting uses of "a"
C (dummy argument and symbolic constant).
C The problems exist under both 4.1bsd and 4.2bsd.
C On a larger version of subroutine test, 4.1bsd complained
C "Out of memory" (the larger program was not
C tried under 4.2bsd).
C The program gets the following messages when compiled
C with default options:
C usererr.f:
C MAIN s:
C doif:
C Warning on line 51 of usererr.f: there is a branch to label 10 from outside block
C test:
C Assembler:
C "/tmp/fort12421.s", line 51: WARNING: brb: destination label is external
C Undefined:
C _y_
C L27
program s
common /x/ x
save /y/
end
subroutine doif
integer i, j, k
do 10 i = 1, 20
if (i.gt.1) then
j = 2
else
j = 3
if (i.eq.j) then
k = 1
else
k = 2
end if
10 continue
end
subroutine test(a, b)
integer a, b
parameter(a=5)
b = a
end
--
Peter Montgomery
{akgua,allegra,bli,blix,bmcg,burdvax,cbosgd,csun,hplabs,hughes,
ihnp4,ihnss,netvax,orstcs,parallax,randvax,sdccsu3,sdcnet,sdcsvax,
slant45,trw-unix,ucla-s,ucla-vax}!sdcrdcf!pmontgom