Am 12.07.2013 23:07, Thomas Koenig wrote:
here is a rather self-evident patch for PR 52669.
Regression-tested. OK for trunk?

I think you should also handle:
  module m
     private
     integer :: k
  end module m

and
  module m2
     integer :: ll
  end module m2
when compiled with -fmodule-private.

I think that's not yet handled by your code. It is probably sufficient to move the following code (in the same function) up before your check:

      if (sym->attr.access == ACCESS_UNKNOWN
          && (sym->ns->default_access == ACCESS_PRIVATE
              || (sym->ns->default_access == ACCESS_UNKNOWN
                  && gfc_option.flag_module_private)))
        sym->attr.access = ACCESS_PRIVATE;


Otherwise, it looks okay to me.

Tobias

PS: We will have to change the check when submodules are supported. But it is detectable in a module whether it is used as submodule; one can even handle as additional special case that there is a submodule, but it is in the same file.


2013-07-12 Thomas Koenig  <tkoe...@gcc.gnu.org>

        PR fortran/52669
        * trans-decl.c (gfc_create_module_variable):  Optionally
        warn about private module variable which is not used.

2013-07-12  Thomas Koenig  <tkoe...@gcc.gnu.org>

        PR fortran/52669
        * fortran.dg/module_variable_1.f90:  New test.

Reply via email to