Issue 160811.1: Allow reference class for DW_AT_string_length attribute

Author: Jakub Jelinek
Champion: Jakub Jelinek
Date submitted: 2016-08-11
Date revised:
Date closed:
Type: Enhancement
Status: Accepted
DWARF version: 5

Section 5.11, pg 117

While for most of the type attributes with integral value (see 2.19 section Static and Dynamic Value of Attributes) the attribute can be constant class, exprloc or reference (the last one reference to another DIE that provides the integral value in its DW_AT_location), DW_AT_string_length only allows exprloc or loclistptr.

constant class isn't needed for it, because constant string length is expressed by DW_AT_byte_size, but it would be nice to just point to a DIE of the var holding the string length, without having to worry to propagate its location back to the DW_AT_string_length attribute (and especially hard if the types are emitted earlier by separate compilation step). Using DW_OP_call4 in the DW_AT_string_length works for this purpose only if the variable is going to have DWARF expression in its DW_AT_location, but not if it is a location description (DW_OP_stack_value ending, DW_OP_reg*, etc.).

--

12/06/2016 -- Accepted.