Fix per JCB. Add commentary.
authorDave Love <fx@gcc.gnu.org>
Tue, 2 Jun 1998 02:44:48 +0000 (02:44 +0000)
committerDave Love <fx@gcc.gnu.org>
Tue, 2 Jun 1998 02:44:48 +0000 (02:44 +0000)
From-SVN: r20178

gcc/testsuite/g77.f-torture/compile/970125-0.f

index d2098bafe3916631bef0eb54a1ba6b095709f202..cf6cca69b73a25b0932644913c5da508320fbd66 100644 (file)
@@ -1,16 +1,37 @@
-       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*8 i8
-       print *, i4, i4a
-       print *, i8, i8a
-       end
+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
+        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