From: Dave Love Date: Tue, 2 Jun 1998 02:44:48 +0000 (+0000) Subject: Fix per JCB. Add commentary. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de5ecc6c4d863c40259f28438018a62f61cc3c35;p=gcc.git Fix per JCB. Add commentary. From-SVN: r20178 --- diff --git a/gcc/testsuite/g77.f-torture/compile/970125-0.f b/gcc/testsuite/g77.f-torture/compile/970125-0.f index d2098bafe39..cf6cca69b73 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