| ! { dg-do compile } |
| ! { dg-options "-O0" } |
| ! Tests the fix for PR24207 and the problems associated |
| ! with the fix for PR21986. In two cases, use associated |
| ! public symbols were taking on the default private access |
| ! attribute of the local namespace. In the third, a private |
| ! symbol was not available to a namelist in contained |
| ! procedure in the same module. |
| ! |
| ! Based on the example in PR24207. |
| ! |
| module a |
| implicit none |
| real b |
| type :: mytype |
| integer :: c |
| end type mytype |
| end module a |
| module c |
| use a |
| implicit none |
| public d |
| private |
| real x |
| contains |
| subroutine d (arg_t) ! This would cause an error |
| type (mytype) :: arg_t |
| namelist /e/ b, x ! .... as would this. |
| read(5,e) |
| arg_t%c = 42 |
| end subroutine d |
| end module c |
| |
| ! { dg-final { cleanup-modules "a c" } } |