! { dg-do compile } ! { dg-options "-fall-intrinsics -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