Issue 100805.1: dynamic properties of types: reference interpretation

Author: David Gross
Champion: Michael Eager
Date submitted: 2010-08-05
Date revised:
Date closed:
Type: Clarification
Status: Accepted with modification
DWARF version: 5
Section 2.19, pg 40
This was raised on dwarf-discuss by Mathieu Lacage
<mathieu.lacage@gmail.com> 2 Aug 2010 in the thread "decoding of form
entries".

If one of the "applicable attributes" listed in 2.19 has a reference
form, how do we obtain the value of the attribute?

Two interpretations were suggested on the thread.

Michael Eager wrote:

  generally you would search the referenced DIE to find the same
  attribute.  In some cases, like DW_AT_specification, there are
  multiple attributes in the referenced DIE.

David Gross wrote:

  I see a different pattern in D.2.2 (Ada Example): 13$ contains a
  DW_AT_upper_bound whose value is a reference to a variable.  The
  variable does not contain a DW_AT_upper_bound; the value of the
  variable itself is the value of the DW_AT_upper_bound.  That's the
  pattern that I expected to see; I wasn't aware that the standard
  intends to support the delegation pattern you describe above.

The standard should be explicit about the intended interpretation(s).

---

Accepted with modification -- Sept. 18, 2012
Revised text corrected -- March 31, 2014

The second bullet in Section 2.19, pg. 40, reads as follows:

  - For a reference, the value is a reference to another
    entity which specifies the value of the attribute.

Revised text:

  - For a reference, the value is a reference to another DIE.  This DIE may
     -- describe a variable which contains the attribute value
     -- describes a constant which is the attribute value
     -- contain a DWARF expression which computes the attribute value
        or is a dwarf procedure which computes the attribute value