DWARF Standard


HOME
SPECIFICATIONS
FAQ
ISSUES



100504.1 Robert Clipsham Extensions for D arrays, associative arrays, and delegates Enhancement Rejected John Bishop


Currently the D programming language (DW_LANG_D) uses extensions to the spec which conflict with DWARF 4,
I would like to propose their inclusion in DWARF 4 or above. The extensions are as follows:
  DW_TAG_darray_type - D dynamic array type
  DW_TAG_aarray_type - Associative array
  DW_TAG_delegate_type - Delegates (function pointers with context)

In D, these are currently implemented as follows (see http://digitalmars.com/d/2.0/abi.html#dwarf):
  DW_TAG_darray_type: This is a struct { size_t length; T* ptr; } where T is the type of the array. 
  This type is specified with a DW_AT_type.

  DW_TAG_aarray_type: An associative array, where DW_AT_type is element type and DW_AT_containing_type 
  is the key type.

  DW_TAG_delegate_type: A struct { T* ptr; U* funcptr; } Where T is the type of the context pointer, 
  and U is the type of the function. The context pointer can be a class this reference, a struct 
  this pointer, a pointer to a closure (nested functions) or a pointer to an enclosing function's 
  stack frame (nested functions). This is specified as DW_AT_type: the function type, 
  DW_AT_containing_type is 'this' (context pointer) type.

These details can be changed as required, but I believe it to be preferable to have these included 
in DWARF so extensions are not needed. Sorry if any of these can already be done, I have not had 
chance to check the specification fully.

---

Rejected -- April 18, 2012.

Preferred method would be adding attributes to existing types.  Unclear whether anyone
is using or still interested in these (or similar) extensions.  


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