[Bug fortran/54884] New: [4.8 Regression] Externally used PRIVATE module procedure wrongly marked as TREE_PUBLIC()=0
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Oct 10 07:30:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54884
Bug #: 54884
Summary: [4.8 Regression] Externally used PRIVATE module
procedure wrongly marked as TREE_PUBLIC()=0
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: burnus@gcc.gnu.org
CC: abensonca@gmail.com
As reported by Andrew Benson at
http://gcc.gnu.org/ml/fortran/2012-10/msg00046.html:
Build the FoX library (http://www1.gly.bris.ac.uk/~walker/FoX/), specifically
the version at
http://www1.gly.bris.ac.uk/~walker/FoX/source/FoX-4.1.2-full.tar.gz
leads to link errors:
m_wxml_core.F90:(.text+0x1a2): undefined reference to
`__m_common_attrs_MOD_get_value_by_index_len'
gfortran 4.8 marks PRIVATE module variables/procedures as TREE_PUBLIC()=0,
however, that shouldn't happen if they are externally visible. In that case,
they shall be marked as attr.public_used - which seemingly doesn't happen in
this case.
In ./common/m_common_attrs.F90 one has:
module m_common_attrs
private
!...
public :: get_key
contains
pure function get_key_len(dict, i) result(n)
!...
end function get_key_len
! ...
function get_key(dict, i) result(key)
! ...
character(len=get_key_len(dict,i)) :: key
end function get_key
end module m_common_attrs
More information about the Gcc-bugs
mailing list