diff options
author | Dave Love <fx@gcc.gnu.org> | 1998-06-02 02:44:48 +0000 |
---|---|---|
committer | Dave Love <fx@gcc.gnu.org> | 1998-06-02 02:44:48 +0000 |
commit | de5ecc6c4d863c40259f28438018a62f61cc3c35 (patch) | |
tree | e2162250bf48bcaa21f2cab9dd29dc7a110f09d4 | |
parent | 7eca79861812f0bf395721a8742d56a8d38dfd01 (diff) | |
download | gcc-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.f | 53 |
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 |