From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28487 invoked by alias); 20 Jun 2011 16:30:44 -0000 Received: (qmail 28472 invoked by uid 22791); 20 Jun 2011 16:30:41 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Jun 2011 16:30:26 +0000 From: "burnus at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/49475] New: [OOP] Add DWARF info for Fortran's OOP features (extension, member functions) X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: burnus at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Mon, 20 Jun 2011 16:30:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg01789.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49475 Summary: [OOP] Add DWARF info for Fortran's OOP features (extension, member functions) Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned@gcc.gnu.org ReportedBy: burnus@gcc.gnu.org We should consider generating DWARF information for Fortran OOP features: type t integer :: a end type t type, EXTENDS(t) :: t2 integer :: b contains 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"