||Clarify location expressions
||Accepted with modifications
Folks still have trouble understanding where DW_OP_reg and regx
fit into expressions and where they don't. 2.5 and 2.6.1 thru 2.6.4
are not clear enough.
Ron Brender, 6/14/2007:
Among other things I tried to follow Chris' suggestion to adopt a more
consistent nomenclature. In particular, using names that end in "description"
rather than "expression". I also tried to more clearly establish the
admittedly implicit "syntax" of allowed operation combinations. Finally,
I included the newly adopted DW_OP_implicit_value operation. This leads
to the following hierarchy of names:
normal location description
simple location description
memory location description
register location description
implicit location description
empty location description
composite location description
The text is also reordered a bit to follow this outline. Sorry, but the
changes are too numerous for change bars to be useful.
FWIW, I don't really like the use of "normal" in "normal location
description" but I couldn't think of a good alternative. Other
suggestions are most welcome.
Note that this formulation allows an implicit location description to
precede a composition operation (just as can a register location
description). This combination was not explicitly discussed near as
I recall. I found it much easier to treat both register locations
and implicit locations the same...
The attachment is extracted from the DWARF V3 document and modified
in isolation. So the section numbers and section references are wrong
(1.1 should be 2.6, etc). Such details are unimportant here.
If this approach is adopted, then lots of other places in the document
will need to be tweaked for consistency (most commonly, "location
expression" becomes "normal location description". We can worry about
that later too.
Replace Section 2.6 with the following: <a href="http://dwarfstd.org/doc/070612-1.pdf">Section 2.6</a>
Accepted with changing "normal location description" to "single