We should consider generating DWARF information for Fortran OOP features:
integer :: a
end type t
type, EXTENDS(t) :: t2
integer :: b
procedure :: member_proc => local_proc
end type t2
type (t2) :: x
In this example, x%a and x%t2%a access the component of the parent type.
"member_proc" is a member function, which can be accessed as x%member_proc(); the actual function being called depends on the dynamic type and is determined via the vtable.
DWARF4 does not really state what should be used in case of Fortran. At http://www.dwarfstd.org/doc/DWARF4.pdf one finds:
- "5.5.3 Derived or Extended Structs, Classes and Interfaces"
- "5.5.7 Member Function Entries"
See thread starting at http://gcc.gnu.org/ml/gcc/2011-06/threads.html#00342