https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88632

Paul Thomas <pault at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |pault at gcc dot gnu.org

--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> ---
Created attachment 45349
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45349&action=edit
A provisional patch that fixes the problem

The attached fixes this but causes regressions:

FAIL: gfortran.dg/module_private_2.f90   -O   scan-tree-dump-times optimized
"priv" 0
FAIL: gfortran.dg/public_private_module_7.f90   -O   scan-assembler-not
__m_common_attrs_MOD_other
FAIL: gfortran.dg/public_private_module_8.f90   -O   scan-assembler-not
__m_MOD_myotherlen
FAIL: gfortran.dg/public_private_module_2.f90   -O   scan-assembler-not two
FAIL: gfortran.dg/public_private_module_2.f90   -O   scan-assembler-not six
FAIL: gfortran.dg/warn_unused_function_2.f90   -O   (test for warnings, line
16)

I think that this is best dealt with by extending the patch by flagging the
module as having a module function/subroutine, which implies that there is a
submodule somewhere, and making all the module procedures TREE_PUBLIC. That
will suppress the above regressions.

Otherwise, I will have to find someway of persuading the linker to find the
symbol from the submodule.

First I must get the C-interop patch out of the way and then I will come back
to this PR.

Paul

Reply via email to