c { dg-do compile }
c
c Following line added on transfer to gfortran testsuite
c { dg-excess-errors "" }
c
C JCB comments:
C g77 doesn't accept the added line "integer(kind=7) ..." --
C it crashes!
C 
C It's questionable that g77 DTRT with regarding to passing
C %LOC() as an argument (thus by reference) and the new global
C analysis.  I need to look into that further; my feeling is that
C passing %LOC() as an argument should be treated like passing an
C INTEGER(KIND=7) by reference, and no more specially than that
C (and that INTEGER(KIND=7) should be permitted as equivalent to
C INTEGER(KIND=1), INTEGER(KIND=2), or whatever, depending on the
C system's pointer size).
C 
C The back end *still* has a bug here, which should be fixed,
C because, currently, what g77 is passing to it is, IMO, correct.

C No options:
C ../../egcs/gcc/f/info.c:259: failed assertion `ffeinfo_types_[basictype][kindtype] != NULL'
C -fno-globals -O:
C ../../egcs/gcc/expr.c:7291: Internal compiler error in function expand_expr

c     Frontend bug fixed by JCB 1998-06-01 com.c &c changes.

        integer*4 i4
        integer*8 i8
        integer*8 max4
        data max4/2147483647/
        i4 = %loc(i4)
        i8 = %loc(i8)
        print *, max4
        print *, i4, %loc(i4)
        print *, i8, %loc(i8)
        call foo(i4, %loc(i4), i8, %loc(i8))
        end
        subroutine foo(i4, i4a, i8, i8a)
        integer(kind=7) i4a, i8a
        integer*8 i8
        print *, i4, i4a
        print *, i8, i8a
        end
