Commit for Asher Langton <langton2@llnl.gov>
fortran/ * decl.c (gfc_match_save): Changed duplicate SAVE errors to warnings in the absence of strict standard conformance * symbol.c (gfc_add_save): Same. testsuite/ * gfortran.dg/dup_save_1.f90: New test. * gfortran.dg/dup_save_2.f90: New test. From-SVN: r105850
This commit is contained in:
parent
aca2b8da20
commit
09e87839d4
|
@ -1,3 +1,9 @@
|
|||
2005-10-24 Asher Langton <langton2@llnl.gov>
|
||||
|
||||
* decl.c (gfc_match_save): Changed duplicate SAVE errors to
|
||||
warnings in the absence of strict standard conformance
|
||||
* symbol.c (gfc_add_save): Same.
|
||||
|
||||
2005-10-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||
|
||||
PR fortran/15586
|
||||
|
|
|
@ -3271,9 +3271,10 @@ gfc_match_save (void)
|
|||
{
|
||||
if (gfc_current_ns->seen_save)
|
||||
{
|
||||
gfc_error ("Blanket SAVE statement at %C follows previous "
|
||||
"SAVE statement");
|
||||
|
||||
if (gfc_notify_std (GFC_STD_LEGACY,
|
||||
"Blanket SAVE statement at %C follows previous "
|
||||
"SAVE statement")
|
||||
== FAILURE)
|
||||
return MATCH_ERROR;
|
||||
}
|
||||
|
||||
|
@ -3283,7 +3284,9 @@ gfc_match_save (void)
|
|||
|
||||
if (gfc_current_ns->save_all)
|
||||
{
|
||||
gfc_error ("SAVE statement at %C follows blanket SAVE statement");
|
||||
if (gfc_notify_std (GFC_STD_LEGACY,
|
||||
"SAVE statement at %C follows blanket SAVE statement")
|
||||
== FAILURE)
|
||||
return MATCH_ERROR;
|
||||
}
|
||||
|
||||
|
|
|
@ -681,7 +681,10 @@ gfc_add_save (symbol_attribute * attr, const char *name, locus * where)
|
|||
|
||||
if (attr->save)
|
||||
{
|
||||
duplicate_attr ("SAVE", where);
|
||||
if (gfc_notify_std (GFC_STD_LEGACY,
|
||||
"Duplicate SAVE attribute specified at %L",
|
||||
where)
|
||||
== FAILURE)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2005-10-24 Asher Langton <langton2@llnl.gov>
|
||||
|
||||
* gfortran.dg/dup_save_1.f90: New test.
|
||||
* gfortran.dg/dup_save_2.f90: New test.
|
||||
|
||||
2005-10-24 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
PR 24107
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
! { dg-do run }
|
||||
program save_1
|
||||
implicit none
|
||||
integer i
|
||||
integer foo1, foo2, foo3, foo4
|
||||
do i=1,10
|
||||
if (foo1().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
if (foo2().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
if (foo3().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
if (foo4().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
end do
|
||||
end program save_1
|
||||
|
||||
integer function foo1
|
||||
integer j
|
||||
save
|
||||
save ! { dg-warning "Blanket SAVE" }
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo1 = j
|
||||
end function foo1
|
||||
|
||||
integer function foo2
|
||||
integer j
|
||||
save j
|
||||
save j ! { dg-warning "Duplicate SAVE" }
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo2 = j
|
||||
end function foo2
|
||||
|
||||
integer function foo3
|
||||
integer j ! { dg-warning "Duplicate SAVE" }
|
||||
save
|
||||
save j ! { dg-warning "SAVE statement" }
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo3 = j
|
||||
end function foo3
|
||||
|
||||
integer function foo4
|
||||
integer j ! { dg-warning "Duplicate SAVE" }
|
||||
save j
|
||||
save
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo4 = j
|
||||
end function foo4
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-std=f95" }
|
||||
program save_2
|
||||
implicit none
|
||||
integer i
|
||||
integer foo1, foo2, foo3, foo4
|
||||
do i=1,10
|
||||
if (foo1().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
if (foo2().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
if (foo3().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
if (foo4().ne.i) then
|
||||
call abort
|
||||
end if
|
||||
end do
|
||||
end program save_2
|
||||
|
||||
integer function foo1
|
||||
integer j
|
||||
save
|
||||
save ! { dg-error "Blanket SAVE" }
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo1 = j
|
||||
end function foo1
|
||||
|
||||
integer function foo2
|
||||
integer j
|
||||
save j
|
||||
save j ! { dg-error "Duplicate SAVE" }
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo2 = j
|
||||
end function foo2
|
||||
|
||||
integer function foo3
|
||||
integer j
|
||||
save
|
||||
save j ! { dg-error "SAVE statement" }
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo3 = j
|
||||
end function foo3
|
||||
|
||||
integer function foo4
|
||||
integer j ! { dg-error "Duplicate SAVE" }
|
||||
save j
|
||||
save
|
||||
data j /0/
|
||||
j = j + 1
|
||||
foo4 = j
|
||||
end function foo4
|
Loading…
Reference in New Issue