following programs should be rejected as invalid, either as a default, or certainly with the above options gcc version 3.5.0 20040628 (experimental) ! test 1 DO I=1,5 I=1 ENDDO DO I=1,5 READ(5,*) I ENDDO END ! test 2 COMMON /BLOCKA/ A,B,C COMMON /BLOCKB/ D,E,F EQUIVALENCE(B,E) END ! test 3 REAL :: A REAL, TARGET :: B EQUIVALENCE(A,B) END ! test 4 write(6,*) ,2 END ! test 5 PROGRAM END ! test 6 MODULE TEST PRIVATE TYPE info_type INTEGER :: value END TYPE info_type TYPE all_type TYPE(info_type) :: info END TYPE PUBLIC :: all_type END MODULE END ! test 7 RETURN END ! test 8 TYPE data_type TYPE(data_type), POINTER :: next=>NULL() INTEGER :: i=0 END TYPE data_type TYPE (data_type) :: A write(6,*) A END
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Changes by: tobi@gcc.gnu.org 2004-07-11 13:35:33 Modified files: gcc/fortran : ChangeLog io.c Log message: PR fortran/16404 * io.c (match_io): Flag 'WRITE(...), ...' as extension. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.119&r2=1.120 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/io.c.diff?cvsroot=gcc&r1=1.11&r2=1.12
I can't find anything in the standard which renders test 6 illegal. I think the code is equivalent to: ! test 6 MODULE TEST TYPE, PRIVATE :: info_type private INTEGER :: value END TYPE info_type TYPE, PUBLIC :: all_type private TYPE(info_type) :: info END TYPE END MODULE which is legal AFAICT, and accepted by gfortran.
Number 4 is fixed by the commit, a patch for numbers 5 and 7 is in the making: http://gcc.gnu.org/ml/gcc-patches/2004-07/msg01148.html
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Changes by: tobi@gcc.gnu.org 2004-07-11 14:16:32 Modified files: gcc/fortran : ChangeLog match.c Log message: PR fortran/16404 * match.c (gfc_match_program): A program name is obligatory. (gfc_match_return): RETURN in main program is an extension. (gfc_match_block_data): A space is required before a block data name. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.120&r2=1.121 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/match.c.diff?cvsroot=gcc&r1=1.17&r2=1.18
Numbers 5 and 7 are fixed.
Joost, thank you for the report. Just a small suggestion: next time, please file a different PR for each different testcase. It makes it easier for us to track everything. Thanks. Tobi, I'm reassigning this bug to you since you are working on it. Giovanni
I'm sorry, you're right. Number 6 is indeed invalid: I didn't see it when looking cursorily, because the syntactic rules and the constraints in the (draft F95) standard have a peculiar order, but the first constraint after R427 says: "If a component of a derived type is of a ttype declared to be private, either the derived type definition must contain the PRIVATE stement, or the derived type must be private."
Patch for No 1 is here http://gcc.gnu.org/ml/fortran/2004-07/msg00163.html Joost, if you're planning to submit such bugs in the future, it would be helpful if you pointed why you think those cases are illegal. It would have saved me some time, at least when investigating number 6; and in number 8 it's not apparent to me which part of the standard is violated, so I will to have search through it, work which you certainly have done already. Even your compiler's error message could be helpful in that regard. Thanks.
(In reply to comment #8) > Even your compiler's error message could be helpful in that regard. I don't have the standard reference, but in case 8 the problem is IO of a derived type that has a POINTER component. E.g. g95: In file mytest.f90:6 write(6,*) A 1 Error: Data transfer element at (1) cannot have POINTER components
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Changes by: tobi@gcc.gnu.org 2004-07-16 00:39:40 Modified files: gcc/fortran : ChangeLog io.c match.c parse.c parse.h Log message: PR fortran/16404 (parts ported from g95) * parse.h (gfc_state_data): New field do_variable. (gfc_check_do_variable): Add prototype. * parse.c (push_state): Initialize field 'do_variable'. (gfc_check_do_variable): New function. (parse_do_block): Remember do iterator variable. (parse_file): Initialize field 'do_variable'. * match.c (gfc_match_assignment, gfc_match_do, gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate): Add previously missing checks. (gfc_match_return): Reformat error message. * io.c (match_out_tag): New function. (match_open_element, match_close_element, match_file_element, match_dt_element): Call match_out_tag instead of match_vtag where appropriate. (match_io_iterator, match_io_element): Add missing check. (match_io): Reformat error message. (match_inquire_element): Call match_out_tag where appropriate. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.130&r2=1.131 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/io.c.diff?cvsroot=gcc&r1=1.12&r2=1.13 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/match.c.diff?cvsroot=gcc&r1=1.18&r2=1.19 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/parse.c.diff?cvsroot=gcc&r1=1.13&r2=1.14 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/parse.h.diff?cvsroot=gcc&r1=1.3&r2=1.4
Number 1 is fixed.
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Changes by: tobi@gcc.gnu.org 2004-07-16 00:57:43 Modified files: gcc/fortran : ChangeLog parse.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gfortran.dg: do_iterator.f90 Log message: fortran/ * parse.c (gfc_check_do_variable): Fix error locus. testsuite/ PR fortran/16404 * gfortran.dg/do_iterator.f90: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.131&r2=1.132 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/parse.c.diff?cvsroot=gcc&r1=1.14&r2=1.15 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4009&r2=1.4010 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/do_iterator.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
Patch for number 8 here: http://gcc.gnu.org/ml/fortran/2004-08/msg00348.html
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Changes by: tobi@gcc.gnu.org 2004-09-01 21:07:39 Modified files: gcc/fortran : ChangeLog resolve.c gcc/testsuite : ChangeLog gcc/testsuite/gfortran.dg: der_io_1.f90 Log message: fortran/ PR fortran/16400 PR fortran/16404 (port from g95) * resolve.c (resolve_transfer): New function. (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER. testsuite/ PR fortran/16404 * gfortran.dg/der_io_1.f90: XFAIL illegal testcase. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.195&r2=1.196 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/resolve.c.diff?cvsroot=gcc&r1=1.16&r2=1.17 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4228&r2=1.4229 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/der_io_1.f90.diff?cvsroot=gcc&r1=1.2&r2=1.3
No 2 is PR18870. It also remains No 6.
Since number 2 is already reported, we only have 3 and 6 left: ! test 3 REAL :: A REAL, TARGET :: B EQUIVALENCE(A,B) END ! test 6 ! If component of public derived type 'all_type' of type is declared to be ! private, derived type definition must contain PRIVATE statement. MODULE TEST PRIVATE TYPE info_type INTEGER :: value END TYPE info_type TYPE all_type TYPE(info_type) :: info END TYPE PUBLIC :: all_type END MODULE END
(In reply to comment #16) > Since number 2 is already reported, we only have 3 and 6 left: I have a patch for 3 and will try to sort out 6 (+pr21986) as soon as I have a moment.
> I have a patch for 3 and will try to sort out 6 (+pr21986) as soon as I have a > moment. Both sorted in http://gcc.gnu.org/ml/fortran/2005-09/msg00438.html Paul T
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Changes by: pault@gcc.gnu.org 2005-10-01 07:39:08 Modified files: gcc/fortran : ChangeLog gfortran.h match.c resolve.c symbol.c gcc/testsuite : ChangeLog gcc/testsuite/gfortran.dg/g77: 980628-2.f 980628-3.f 980628-9.f 980628-10.f Added files: gcc/testsuite/gfortran.dg: equiv_constraint_1.f90 equiv_constraint_2.f90 equiv_constraint_3.f90 equiv_constraint_4.f90 equiv_constraint_5.f90 equiv_constraint_6.f90 equiv_constraint_7.f90 equiv_constraint_8.f90 private_type_1.f90 private_type_2.f90 Log message: 2005-10-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/16404 PR fortran/20835 PR fortran/20890 PR fortran/20899 PR fortran/20900 PR fortran/20901 PR fortran/20902 * gfortran.h: Prototype for gfc_add_in_equivalence. * match.c (gfc_match_equivalence): Make a structure component an explicit,rather than a syntax, error in an equivalence group. Call gfc_add_in_equivalence to add the constraints imposed in check_conflict. * resolve.c (resolve_symbol): Add constraints: No public structures with private-type components and no public procedures with private-type dummy arguments. (resolve_equivalence_derived): Add constraint that prevents a structure equivalence member from having a default initializer. (sequence_type): New static function to determine whether an object is default numeric, default character, non-default or mixed sequence. Add corresponding enum typespec. (resolve_equivalence): Add constraints to equivalence groups or their members: No more than one initialized member and that different types are not equivalenced for std=f95. All the simple constraints have been moved to check_conflict. * symbol.c (check_conflict): Simple equivalence constraints added, including those removed from resolve_symbol. (gfc_add_in_equivalence): New function to interface calls match_equivalence to check_conflict. 2005-10-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/16404 PR fortran/20835 PR fortran/20890 PR fortran/20899 PR fortran/20900 PR fortran/20901 PR fortran/20902 gfortran.dg/equiv_constraint_1.f90: New test. gfortran.dg/equiv_constraint_2.f90: New test. gfortran.dg/equiv_constraint_3.f90: New test. gfortran.dg/equiv_constraint_4.f90: New test. gfortran.dg/equiv_constraint_5.f90: New test. gfortran.dg/equiv_constraint_6.f90: New test. gfortran.dg/equiv_constraint_7.f90: New test. gfortran.dg/equiv_constraint_8.f90: New test. gfortran.dg/private_type_1.f90: New test. gfortran.dg/private_type_2.f90: New test. gfortran.dg/g77/980628-2.f, 980628-3.f, 980628-9.f, 980628-10.f: Assert std=gnu to permit mixing of types in equivalence statements. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.572&r2=1.573 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcc&r1=1.87&r2=1.88 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/match.c.diff?cvsroot=gcc&r1=1.45&r2=1.46 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/resolve.c.diff?cvsroot=gcc&r1=1.56&r2=1.57 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/symbol.c.diff?cvsroot=gcc&r1=1.35&r2=1.36 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6119&r2=1.6120 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_1.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_2.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_3.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_4.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_6.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_8.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/private_type_1.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/private_type_2.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-2.f.diff?cvsroot=gcc&r1=1.1&r2=1.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-3.f.diff?cvsroot=gcc&r1=1.1&r2=1.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-9.f.diff?cvsroot=gcc&r1=1.1&r2=1.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-10.f.diff?cvsroot=gcc&r1=1.1&r2=1.2
Fixed now.
Subject: Bug 16404 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-4_0-branch Changes by: pault@gcc.gnu.org 2005-10-12 05:43:08 Modified files: gcc/fortran : ChangeLog gfortran.h match.c resolve.c symbol.c gcc/testsuite : ChangeLog gcc/testsuite/gfortran.dg/g77: 980628-2.f 980628-3.f 980628-9.f 980628-10.f Added files: gcc/testsuite/gfortran.dg: equiv_constraint_1.f90 equiv_constraint_2.f90 equiv_constraint_3.f90 equiv_constraint_4.f90 equiv_constraint_5.f90 equiv_constraint_6.f90 equiv_constraint_7.f90 equiv_constraint_8.f90 private_type_1.f90 private_type_2.f90 private_type_3.f90 Log message: 2005-10-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/16404 PR fortran/20835 PR fortran/20890 PR fortran/20899 PR fortran/20900 PR fortran/20901 PR fortran/20902 PR fortran/24207 * gfortran.h: Prototype for gfc_add_in_equivalence. * match.c (gfc_match_equivalence): Make a structure component an explicit,rather than a syntax, error in an equivalence group. Call gfc_add_in_equivalence to add the constraints imposed in check_conflict. * resolve.c (resolve_symbol): Add constraints: No public structures with private-type components and no public procedures with private-type dummy arguments. Exclude use and host associated symbols from the test for private objects in a public namelist. (resolve_equivalence_derived): Add constraint that prevents a structure equivalence member from having a default initializer. (sequence_type): New static function to determine whether an object is default numeric, default character, non-default or mixed sequence. Add corresponding enum typespec. (resolve_equivalence): Add constraints to equivalence groups or their members: No more than one initialized member and that different types are not equivalenced for std=f95. All the simple constraints have been moved to check_conflict. * symbol.c (check_conflict): Simple equivalence constraints added, including those removed from resolve_symbol. (gfc_add_in_equivalence): New function to interface calls match_equivalence to check_conflict. 2005-10-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/16404 PR fortran/20835 PR fortran/20890 PR fortran/20899 PR fortran/20900 PR fortran/20901 PR fortran/20902 PR fortran/24207 gfortran.dg/equiv_constraint_1.f90: New test. gfortran.dg/equiv_constraint_2.f90: New test. gfortran.dg/equiv_constraint_3.f90: New test. gfortran.dg/equiv_constraint_4.f90: New test. gfortran.dg/equiv_constraint_5.f90: New test. gfortran.dg/equiv_constraint_6.f90: New test. gfortran.dg/equiv_constraint_7.f90: New test. gfortran.dg/equiv_constraint_8.f90: New test. gfortran.dg/private_type_1.f90: New test. gfortran.dg/private_type_2.f90: New test. gfortran.dg/private_type_3.f90: New test. gfortran.dg/g77/980628-2.f, 980628-3.f, 980628-9.f, 980628-10.f: Assert std=gnu to permit mixing of types in equivalence statements. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.335.2.127&r2=1.335.2.128 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.58.2.17&r2=1.58.2.18 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/match.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.31.8.12&r2=1.31.8.13 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/resolve.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.34.2.17&r2=1.34.2.18 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/symbol.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.26.2.4&r2=1.26.2.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.447&r2=1.5084.2.448 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_1.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_2.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_3.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_4.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_6.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/equiv_constraint_8.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/private_type_1.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/private_type_2.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.12.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/private_type_3.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-2.f.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1&r2=1.1.46.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-3.f.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1&r2=1.1.46.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-9.f.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1&r2=1.1.46.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/980628-10.f.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1&r2=1.1.46.1