http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58177

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |janus at gcc dot gnu.org

--- Comment #1 from janus at gcc dot gnu.org ---
(In reply to Andrew Benson from comment #0)
> module a
>   logical :: m
> end module a
> module b
>   logical, private :: m
> contains
>   subroutine bb()
>     use a
>     m=.true.
>   end subroutine bb
> end module b                                                            
> 
> [...]                                                              
> 
>   logical, private :: m                                                     
> 
>                        1
> Warning: Unused PRIVATE module variable 'm' declared at (1)

AFAICS the warning is correct: Your USE statement imports all public symbols
from module a, including 'm'. Therefore the 'm' from 'a' is used and not the
'm' from 'b'. The same is achieved by explicitly importing 'm' via

use a, only: m

which gives the same warning (correctly, I would say).

Or am I missing something here?

Reply via email to