DWARF Standard


080112.3 Cary Coutant FORM Reform Proposal 3: Implicit Flag Form Extension Approved with changes Cary Coutant


One study showed that attributes with DW_FORM_flag contribute 2-5% of the 
total size of the .debug_info section by requiring the flag to be explicitly 
represented in the debug info.

This proposal adds a new form, DW_FORM_implicit_flag, which by its very 
presence in the abbrev table entry, means that the flag is set -- it would 
consume no bytes from the .debug_info section. This would allow the producer 
a choice of using DW_FORM_flag in situations where it didn't want to create 
a new abbreviation code, or using implicit_flag in a separate abbreviation code.


In Section 7.5.4, "Attribute Encodings," replace the description of class 
flag with the following:


   A flag may be represented explicitly as a single byte of
   data (DW_FORM_flag), or implicitly (DW_FORM_implicit_flag).
   In the first case, if the flag has the value zero, it
   indicates the absence of the attribute; if the flag has
   a non-zero value, it indicates the presence of the
   attribute. In the second case, the attribute is considered
   present, and no value is encoded the debugging information
   entry itself.

In Figure 21, add the following row:

 Form name                Value    Class

 DW_FORM_implicit_flag    0x19     flag


Approved changing DW_FORM_implicit_flag to DW_FORM_flag_present.

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.