DWARF Standard


HOME
SPECIFICATIONS
FAQ
ISSUES



050718.1 Jim Cownie FORTRAN extensions Extension Accepted with modification Ron Brender


Problem
-------

DWARF has no way to express the "elemental", "pure" and "recursive" properties
of Fortran 95 subroutines or functions.

To allow debuggers correctly to call such subroutines/functions at least
the "elemental" property must be known to the debugger. If we're adding
one property we may as well fix all of them at one go.

Proposed Text
-------------

In section 3.3.1 ("General Subroutine and Entrypoint Information") add
(on page 44, at the end of the section)

  A subprogram entry may have the DW_AT_elemental attribute, whose value
  is a flag. If the flag is true, then the subprogram should have scalar
  formal arguments, but apply Fortran elemental conversions to allow
  it to be called with array actuals.

  A subprogram entry may have the DW_AT_pure attribute, whose value
  is a flag. If the flag is true, then the subprogram should obey the
  rules for a Fortran "pure" subprogram.

  A subprogram entry may have the DW_AT_recursive attribute, whose value
  is a flag. If the flag is true, then the subprogram is recursive, if
  the flag is false the subprogram is not recursive. If the attribute is
  not present then the recursiveness of the subprogram is determined by
  the default for the language of the compilation unit. 

  So, in C, C++ or Java the recursive attribute would never need
  to be specified since all subprograms are recursive by default in these
  languages, whereas in Fortran the recursive attribute with flag value
  "true" should be specified for subprograms which were declared
  with the recursive keyword, since the default in Fortran is for
  subprograms not to be recursive.
  

In section 2.2 (the table of attributes), the new attributes need to be
added in the appropriate places.

In the appendix "Attribute values by tag", the new attributes need to be
added to the table for DW_TAG_subprogram.

The new attributes need index entries.

The new attributes need to be added to the table on p135, and assigned
appropriate values.

==============================

Accepted with the following change:
   Replace "is recursive" with "is declared recursive" in the description of
   DW_AT_recursive.


All logos and trademarks in this site are property of their respective owner.
The comments are property of their posters, all the rest © 2007-2017 by DWARF Standards Committee.