On 9/30/24 11:30, Adrian Prantl via Dwarf-discuss wrote:
> ## Proposed Changes
>
> ### Table 2.1
> add `DW_TAG_property`.
>
> ### 5.7.6 add the following normative text
>
> #### `DW_TAG_property`
>
> Non-normative: Many object-oriented languages like Pascal and Objective-C 
> have properties, which are member functions that syntactically behave like 
> data members of an object. Pascal can also have global properties.
>
> A property is represented by a debugging information entry with the
> tag `DW_TAG_property`. At property entry has a `DW_AT_name` string
> attribute whose value is the property name. A property entry has a
> `DW_AT_type` attribute to denote the type of that property.
>
> A property may have `DW_AT_Accessibility`, `DW_AT_external`, 
> `DW_AT_virtuality`, `DW_AT_start_scope`, `DW_AT_decl_column`, 
> `DW_AT_decl_file` and `DW_AT_decl_line` attributes with the respective 
> semantics described for these attributes for `DW_TAG_member` (see chaper 
> 5.7.6).
>
> A property may have one or several of `DW_TAG_property_getter`, 
> `DW_TAG_property_setter`, or `DW_TAG_property_stored` children to represent 
> the getter and setter (member) functions, or the Pascal-style `stored` 
> accessor for this property. Each of these tags have a `DW_AT_specification` 
> attribute to point to a (member) function declaration. They may also have 
> `DW_TAG_formal_parameter` children that can have `DW_AT_default_value` 
> attributes to declare additional default arguments for when these functions 
> are used as property accessors.
> Some languages can automatically derive accessors for properties from a field 
> in the object. In such cases the `DW_AT_specification` attribute of the 
> accessor entry may point to the `DW_TAG_member` entry of the field that holds 
> the properties underlying storage.

Adrian,

This usage of DW_AT_specification seems very different from other uses 
of DW_AT_specification, where it's indicating that the current DIE is a 
completion of a forward declaration at the referenced DIE.  This usage 
is a bit closer to a "renames", but it isn't even quite that.  I suggest 
not attempting to use DW_AT_specification for this case, and just 
inventing a new attribute.

Todd
-- 
Dwarf-discuss mailing list
Dwarf-discuss@lists.dwarfstd.org
https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss

Reply via email to