From: Steven G. Kargl Date: Sat, 21 Jan 2012 17:32:12 +0000 (+0000) Subject: [multiple changes] X-Git-Tag: releases/gcc-4.7.0~897 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb3a6981bf23bebe7a602a5416ee7f52afed9052;p=thirdparty%2Fgcc.git [multiple changes] 2012-01-21 Tobias Burnus Steven G. Kargl PR fortran/50556 * symbol.c (check_conflict): namelist-group-name cannot have the SAVE attribure. 2012-01-21 Steven G. Kargl PR fortran/50556 * gfortran.dg/namelist_74.f90: New test. * gfortran.dg/namelist_59.f90: Remove SAVE attribute. From-SVN: r183370 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index bff42e547893..85aaa210c428 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2012-01-21 Tobias Burnus + Steven G. Kargl + + PR fortran/50556 + * symbol.c (check_conflict): namelist-group-name cannot have the SAVE + attribure. + 2012-01-21 Tobias Burnus PR fortran/51913 diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index fcc1ccfec583..36fc1ed562b1 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -444,12 +444,15 @@ check_conflict (symbol_attribute *attr, const char *name, locus *where) a1 = gfc_code2string (flavors, attr->flavor); a2 = save; goto conflict; - + case FL_NAMELIST: + gfc_error ("Namelist group name at %L cannot have the " + "SAVE attribute", where); + return FAILURE; + break; case FL_PROCEDURE: /* Conflicts between SAVE and PROCEDURE will be checked at resolution stage, see "resolve_fl_procedure". */ case FL_VARIABLE: - case FL_NAMELIST: default: break; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 81597d20d021..5131389e83b4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-01-21 Steven G. Kargl + + PR fortran/50556 + * gfortran.dg/namelist_74.f90: New test. + * gfortran.dg/namelist_59.f90: Remove SAVE attribute. + 2012-01-21 Tobias Burnus PR fortran/51913 diff --git a/gcc/testsuite/gfortran.dg/namelist_59.f90 b/gcc/testsuite/gfortran.dg/namelist_59.f90 index bb68b9bebe93..f69a49a55345 100644 --- a/gcc/testsuite/gfortran.dg/namelist_59.f90 +++ b/gcc/testsuite/gfortran.dg/namelist_59.f90 @@ -16,7 +16,6 @@ subroutine process(string) integer :: i=1,j=2,k=3 integer ios namelist /cmd/ i,j,k - save cmd lines(1)='&cmd' lines(2)=string lines(3)='/' diff --git a/gcc/testsuite/gfortran.dg/namelist_74.f90 b/gcc/testsuite/gfortran.dg/namelist_74.f90 new file mode 100644 index 000000000000..520c7ab3917d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_74.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +! PR fortran/50556 +subroutine foo + save i + namelist /i/ ii ! { dg-error "cannot have the SAVE attribute" } +end subroutine foo +subroutine bar + namelist /i/ ii + save i ! { dg-error "cannot have the SAVE attribute" } +end subroutine bar