! { dg-do compile } ! { dg-require-weak "" } ! 1. program foo1 ! { dg-error "weak declaration of 'foo1' must be public" "" } implicit none !GCC$ ATTRIBUTES weak :: foo1 end program ! 2. subroutine foo2 implicit none contains function dar() ! { dg-error "weak declaration of 'dar' must be public" "" } integer :: dar !GCC$ ATTRIBUTES weak :: dar end function subroutine bar ! { dg-error "weak declaration of 'bar' must be public" "" } !GCC$ ATTRIBUTES weak :: bar end subroutine end subroutine ! 3. subroutine foo3(n) ! { dg-error "has the WEAK attribute but is a dummy argument" "" } implicit none integer :: n !GCC$ ATTRIBUTES weak :: n real :: abc ! { dg-error "has the WEAK attribute but is a local variable" "" } !GCC$ ATTRIBUTES weak :: abc end subroutine