aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Love <fx@gcc.gnu.org>1998-06-02 02:44:48 +0000
committerDave Love <fx@gcc.gnu.org>1998-06-02 02:44:48 +0000
commitde5ecc6c4d863c40259f28438018a62f61cc3c35 (patch)
treee2162250bf48bcaa21f2cab9dd29dc7a110f09d4
parent7eca79861812f0bf395721a8742d56a8d38dfd01 (diff)
downloadgcc-de5ecc6c4d863c40259f28438018a62f61cc3c35.zip
gcc-de5ecc6c4d863c40259f28438018a62f61cc3c35.tar.gz
gcc-de5ecc6c4d863c40259f28438018a62f61cc3c35.tar.bz2
Fix per JCB. Add commentary.
From-SVN: r20178
-rw-r--r--gcc/testsuite/g77.f-torture/compile/970125-0.f53
1 files changed, 37 insertions, 16 deletions
diff --git a/gcc/testsuite/g77.f-torture/compile/970125-0.f b/gcc/testsuite/g77.f-torture/compile/970125-0.f
index d2098ba..cf6cca6 100644
--- a/gcc/testsuite/g77.f-torture/compile/970125-0.f
+++ b/gcc/testsuite/g77.f-torture/compile/970125-0.f
@@ -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