This is the mail archive of the mailing list for the GNU Fortran project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: DWARF debug tags for gfortran's OOP implementation

On 06/28/2011 04:21 PM, Michael Eager wrote:
DWARF has attributes for accessibility (e.g., public, private). If the
attributes are similar to those for C++, you should generate them in a
similar fashion.

Well, Fortran has public and private - but I am not sure in how far it matches C++'s public and private (cf. also below).

> I'm not sure what "type extension" means.

Type extension is inheritance, i.e. Fortran's

type parent
end type parent
type, extends(parent) :: child
end type child

matches C++'s

class parent {};
class child : public parent { };

> If there is
a comparable feature in C++ or other languages supported by DWARF, you
should generate similar DWARF info.

I think that's to a certain extend my problem: I do not completely understand the current DWARF - nor the fine points of C++ to see in how far it matches.

For instance: While both in C++ and Fortran variables and methods can be public or private, Fortran just extends a type without having a concept of public/private/protected inheritance. The semantics of Fortran's public, private and protected is related to modules - which does not really match C++ concept. The DWARF spec does not really tell the implications of the accessibility tags, which makes it a tad more difficult to understand what should be done.

I think we will start by marking the VTABLE as such and to try to handle member functions. - And do compare how g++/gdb handle the approximate C++ version.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]