[Dwarf-Discuss] DWARF representation for Fortran descriptors
davea42 at earthlink.net
Fri Oct 29 14:28:53 PDT 2010
On 10/29/2010 11:07 AM, Kendrick Wong wrote:
> The descriptor for obj1 and obj2 in this example
> INTEGER, POINTER :: obj1
> INTEGER, ALLOCATABLE :: obj2
> is similar to the array example in D.2.1. In that the we have obj1
> containing the address of the descriptor, and the descriptor would
> carry the address of the raw data.
> According to D.2.1, the DWARF would look like this:
> $1a: DW_TAG_base_type
> DW_AT_name (INTEGER)
> DW_AT_encoding (DW_ATE_signed)
> DW_AT_data_location (...) // address of raw data
> DW_AT_associated (...) // is associated?
> DW_AT_allocated (...) // is allocated?
> My question is: Since the type is shared by both obj1 and obj2, how
> would consumer know that obj1 is a pointer and obj2 is an allocatable?
DW_AT_allocated and DW_AT_associated give instructions on how to read
descriptor value so one can know if the type instance is allocated or
DWARF4 D.2 (page 254 printed on that page) shows this. Fine so far.
However, because of the way 5.14.2 reads, the example provided is
having a single DW_TAG_base_type shared by obj2 and obj1.
I believe the above example requires two base types, one with only
one with only DW_AT_allocated.
More information about the Dwarf-Discuss