991108.5 | B | A | D. Anderson | Editoria | Lookup by address |
Section 6.1.2, Lookup by address .
.debug_aranges
Each entry is a beginning-address followed by a length.
And the distinguished entry 0,0 is used to denote
the end of a range of entries.
This means that one must be careful not to emit a zero length
in a descriptor,
as the beginning address of
a normal entry might be 0
and the resulting 0,0 would be taken as end-of-range, not
as a valid entry.
Proposal:
Add:
"An address range descriptor with a zero length field
is ill-formed if the beginning address of the descriptor
could be zero, since if the beginning
address is zero the descriptor will
look like the end-of-range descriptor."
or something like that to the end of the last paragraph of 6.1.2.
Adopted with modifications.
In Section 6.1.2, insert "non-zero" to read as follows:
"Each descriptor is a pair consisting of the beginning address of a range of text or data covered by some entry owned by the corresponding compilation unit entry, followed by the non-zero length of that range."