| ! { dg-do run } |
| program save_1 |
| implicit none |
| integer i |
| integer foo1, foo2, foo3, foo4 |
| do i=1,10 |
| if (foo1().ne.i) then |
| STOP 1 |
| end if |
| if (foo2().ne.i) then |
| STOP 2 |
| end if |
| if (foo3().ne.i) then |
| STOP 3 |
| end if |
| if (foo4().ne.i) then |
| STOP 4 |
| 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 |
| |