Complete work on live links, cleanup some indexing and redo pagination.
[dwarf-doc.git] / dwarf5 / latexdoc / datarepresentation.tex
index de02247..b145868 100644 (file)
@@ -23,7 +23,7 @@ The labels denoting the beginning and end of the reserved
 value range for vendor specific extensions consist of the
 appropriate prefix (DW\_TAG, DW\_AT, DW\_END, DW\_ATE, DW\_OP,
 DW\_LANG, DW\_LNE, DW\_CC or DW\_CFA respectively) followed by
-\livetarg{chap:DWXXXlohiuser}
+\hypertarget{chap:DWXXXlohiuser}{}
 \_lo\_user or \_hi\_user. 
 \textit{For example, for entry tags, the special
 labels are DW\_TAG\_lo\_user and DW\_TAG\_hi\_user.}
@@ -323,7 +323,7 @@ units may share the same table.
 \begin{enumerate}[1. ]
 
 \item \texttt{unit\_length} (\livelink{datarep:initiallengthvalues}{initial length}) \\
-\addtoindexx{\texttt{unit\_length}}
+\addttindexx{unit\_length}
 A 4\dash byte or 12\dash byte 
 \addtoindexx{initial length}
 unsigned integer representing the length
@@ -342,7 +342,7 @@ DWARF information for the compilation unit \addtoindexx{version number!compilati
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is 4.
 
-\item \addtoindex{\texttt{debug\_abbrev\_offset}} (\livelink{datarep:sectionoffsetlength}{section offset}) \\
+\item \addttindex{debug\_abbrev\_offset} (\livelink{datarep:sectionoffsetlength}{section offset}) \\
 A 
 \addtoindexx{section offset!in .debug\_info header}
 4\dash byte or 8\dash byte unsigned offset into the 
@@ -355,7 +355,7 @@ in the \sixtyfourbitdwarfformat, this is an 8\dash byte unsigned length
 
 \item \texttt{address\_size} (\addtoindex{ubyte}) \\
 A 1\dash byte unsigned integer representing the size in bytes of
-\addtoindexx{\texttt{address\_size}}
+\addttindexx{address\_size}
 an address on the target architecture. If the system uses
 \addtoindexx{address space!segmented}
 segmented addressing, this value represents the size of the
@@ -375,7 +375,7 @@ consists of the following information:
 \begin{enumerate}[1. ]
 
 \item \texttt{unit\_length} (\livelink{datarep:initiallengthvalues}{initial length}) \\
-\addtoindexx{\texttt{unit\_length}}
+\addttindexx{unit\_length}
 A 4\dash byte or 12\dash byte unsigned integer 
 \addtoindexx{initial length}
 representing the length
@@ -394,7 +394,7 @@ compilation unit\addtoindexx{version number!type unit}
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is 4.
 
-\item \addtoindex{\texttt{debug\_abbrev\_offset}} (\livelink{datarep:sectionoffsetlength}{section offset}) \\
+\item \addttindex{debug\_abbrev\_offset} (\livelink{datarep:sectionoffsetlength}{section offset}) \\
 A 
 \addtoindexx{section offset!in .debug\_types header}
 4\dash byte or 8\dash byte unsigned offset into the 
@@ -409,7 +409,7 @@ in the \sixtyfourbitdwarfformat, this is an 8\dash byte unsigned length
 A 1\dash byte unsigned integer representing the size 
 \addtoindexx{size of an address}
 in bytes of
-\addtoindexx{\texttt{address\_size}}
+\addttindexx{address\_size}
 an address on the target architecture. If the system uses
 \addtoindexx{address space!segmented}
 segmented addressing, this value represents the size of the
@@ -419,7 +419,7 @@ offset portion of an address.
 \item \texttt{type\_signature} (8\dash byte unsigned integer) \\
 \addtoindexx{type signature}
 A 
-\addtoindexx{\texttt{type\_signature}}
+\addttindexx{type\_signature}
 64\dash bit unique signature (see Section 
 \refersec{datarep:typesignaturecomputation})
 of the type described in this type
@@ -432,7 +432,7 @@ the primary type contained in this
 
 
 \item \texttt{type\_offset} (\livelink{datarep:sectionoffsetlength}{section offset}) \\
-\addtoindexx{\texttt{type\_offset}}
+\addttindexx{type\_offset}
 A 4\dash byte or 8\dash byte unsigned offset 
 \addtoindexx{section offset!in .debug\_types header}
 relative to the beginning
@@ -657,10 +657,10 @@ one
 \addtoindexx{loclistptr class}
 class,
 \addtoindexx{lineptr class}
-namely \livelink{chap:lineptr}{lineptr}, 
-\livelink{chap:loclistptr}{loclistptr}, 
-\livelink{chap:macptr}{macptr} or 
-\livelink{chap:rangelistptr}{rangelistptr}; the list
+namely \livelink{chap:classlineptr}{lineptr}, 
+\livelink{chap:classloclistptr}{loclistptr}, 
+\livelink{chap:classmacptr}{macptr} or 
+\livelink{chap:classrangelistptr}{rangelistptr}; the list
 of classes allowed by the applicable attribute in 
 Table \refersec{tab:attributeencodings}
 determines the class of the form.
@@ -676,10 +676,10 @@ either
 \addtoindexx{loclistptr class}
 class constant \addtoindexx{constant class}
 or one of the classes 
-\livelink{chap:lineptr}{lineptr},
-\livelink{chap:loclistptr}{loclistptr}, 
-\livelink{chap:macptr}{macptr} or 
-\livelink{chap:rangelistptr}{rangelistptr}, depending on context. In
+\livelink{chap:classlineptr}{lineptr},
+\livelink{chap:classloclistptr}{loclistptr}, 
+\livelink{chap:classmacptr}{macptr} or 
+\livelink{chap:classrangelistptr}{rangelistptr}, depending on context. In
 DWARF V4 
 \livelink{chap:DWFORMdata4}{DW\_FORM\_data4} and 
 \livelink{chap:DWFORMdata8}{DW\_FORM\_data8} are members of class
@@ -691,7 +691,8 @@ their usage for the other classes.}
 Each possible form belongs to one or more of the following classes:
 
 \begin{itemize}
-\item \livelinki{chap:DWATaddressclass}{address}{address class} \\
+\item \livelinki{chap:classaddress}{address}{address class} \\
+\livetarg{datarep:classaddress}{}
 Represented as an object of appropriate size to hold an
 address on the target machine 
 (\livetarg{chap:DWFORMaddr}{DW\_FORM\_addr}). 
@@ -701,7 +702,8 @@ encoded in the compilation unit header
 This address is relocatable in a relocatable object file and
 is relocated in an executable file or shared object.
 
-\item \livelink{chap:block}{block} \\
+\item \livelink{chap:classblock}{block} \\
+\livetarg{datarep:classblock}{}
 Blocks come in four forms:
 
 \begin{myindentpara}{1cm}
@@ -714,13 +716,11 @@ A 2\dash byte length followed by 0 to 65,535 contiguous information
 bytes (\livetarg{chap:DWFORMblock2}{DW\_FORM\_block2}).
 \end{myindentpara}
 
-
 \begin{myindentpara}{1cm}
 A 4\dash byte length followed by 0 to 4,294,967,295 contiguous
 information bytes (\livetarg{chap:DWFORMblock4}{DW\_FORM\_block4}).
 \end{myindentpara}
 
-
 \begin{myindentpara}{1cm}
 An unsigned LEB128 length followed by the number of bytes
 specified by the length (\livetarg{chap:DWFORMblock}{DW\_FORM\_block}).
@@ -731,7 +731,8 @@ that follow. The information bytes may contain any mixture
 of relocated (or relocatable) addresses, references to other
 debugging information entries or data bytes.
 
-\item constant \\
+\item \livelinki{chap:classconstant}{constant}{constant class} \\
+\livetarg{datarep:classconstant}{}
 There are six forms of constants. There are fixed length
 constant data forms for one, two, four and eight byte values
 (respectively, 
@@ -767,17 +768,18 @@ unsigned integers respectively, rather than
 \livelink{chap:DWFORMdata}{DW\_FORM\_data}\textless n\textgreater.}
 
 \needlines{4}
-\item \livelink{chap:exprloc}{exprloc} \\
+\item \livelinki{chap:classexprloc}{exprloc}{exprloc class} \\
+\livetarg{datarep:classexprloc}{}
 This is an unsigned LEB128 length followed by the
 number of information bytes specified by the length
 (\livetarg{chap:DWFORMexprloc}{DW\_FORM\_exprloc}). 
-The information bytes contain a DWARF
-expression 
+The information bytes contain a DWARF expression 
 (see Section \refersec{chap:dwarfexpressions}) 
 or location description 
 (see Section \refersec{chap:locationdescriptions}).
 
-\item \livelink{chap:flag}{flag} \\
+\item \livelinki{chap:classflag}{flag}{flag class} \\
+\livetarg{datarep:classflag}{}
 A flag \addtoindexx{flag class}
 is represented explicitly as a single byte of data
 (\livetarg{chap:DWFORMflag}{DW\_FORM\_flag}) or 
@@ -789,14 +791,14 @@ it indicates the presence of the attribute. In the second
 case, the attribute is implicitly indicated as present, and
 no value is encoded in the debugging information entry itself.
 
-\item \livelink{chap:lineptr}{lineptr} \\
+\item \livelinki{chap:classlineptr}{lineptr}{lineptr class} \\
+\livetarg{datarep:classlineptr}{}
 This is an offset into 
 \addtoindexx{section offset!in class lineptr value}
 the 
 \dotdebugline{} section
 (\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}).
-It consists of an offset from the
-beginning of the 
+It consists of an offset from the beginning of the 
 \dotdebugline{}
 section to the first byte of
 the data making up the line number list for the compilation
@@ -808,7 +810,8 @@ in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 
-\item \livelink{chap:loclistptr}{loclistptr} \\
+\item \livelinki{chap:classloclistptr}{loclistptr}{loclistptr class} \\
+\livetarg{datarep:classloclistptr}{}
 This is an offset into the 
 \dotdebugloc{}
 section
@@ -819,8 +822,7 @@ beginning of the
 \dotdebugloc{}
 section to the first byte of
 the data making up the 
-\addtoindex{location list} for the compilation
-unit. 
+\addtoindex{location list} for the compilation unit. 
 It is relocatable in a relocatable object file, and
 relocated in an executable or shared object. In the 
 \thirtytwobitdwarfformat, this offset is a 4\dash byte unsigned value;
@@ -828,7 +830,8 @@ in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 
-\item \livelink{chap:macptr}{macptr} \\
+\item \livelinki{chap:classmacptr}{macptr}{macptr class} \\
+\livetarg{datarep:classmacptr}{}
 This is an 
 \addtoindexx{section offset!in class macptr value}
 offset into the 
@@ -846,7 +849,8 @@ in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \needlines{4}
-\item \livelink{chap:rangelistptr}{rangelistptr} \\
+\item \livelinki{chap:classrangelistptr}{rangelistptr}{rangelistptr class} \\
+\livetarg{datarep:classrangelistptr}{}
 This is an 
 \addtoindexx{section offset!in class rangelistptr value}
 offset into the \dotdebugranges{} section
@@ -864,16 +868,17 @@ format, it is an 8\dash byte unsigned value (see Section
 \refersec{datarep:32bitand64bitdwarfformats}).
 \end{itemize}
 
-\textit{Because classes \livelink{chap:lineptr}{lineptr}, 
-\livelink{chap:loclistptr}{loclistptr}, 
-\livelink{chap:macptr}{macptr} and 
-\livelink{chap:rangelistptr}{rangelistptr}
+\textit{Because classes \livelink{chap:classlineptr}{lineptr}, 
+\livelink{chap:classloclistptr}{loclistptr}, 
+\livelink{chap:classmacptr}{macptr} and 
+\livelink{chap:classrangelistptr}{rangelistptr}
 share a common representation, it is not possible for an
 attribute to allow more than one of these classes}
 
 
 \begin{itemize}
-\item reference \\
+\item \livelinki{chap:classreference}{reference}{reference class} \\
+\livetarg{datarep:classreference}{}
 There are three types of reference.
 
 The 
@@ -951,7 +956,8 @@ units.}
 debugging information entry for that unit, not the preceding
 header.}
 
-\item string \\
+\item \livelinki{chap:classstring}{string}{string class} \\
+\livetarg{datarep:classstring}{}
 A string is a sequence of contiguous non\dash null bytes followed by
 one null byte. 
 \addtoindexx{string class}
@@ -995,9 +1001,9 @@ of
 \addtoindexx{lineptr class}
 the 
 \addtoindexx{macptr class}
-classes \livelink{chap:lineptr}{lineptr},
-\livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr} or 
-\livelink{chap:rangelistptr}{rangelistptr} to point into either the
+classes \livelink{chap:classlineptr}{lineptr},
+\livelink{chap:classloclistptr}{loclistptr}, \livelink{chap:classmacptr}{macptr} or 
+\livelink{chap:classrangelistptr}{rangelistptr} to point into either the
 \dotdebuginfo{} or \dotdebugstr{} section.
 
 The form encodings are listed in 
@@ -1019,192 +1025,190 @@ Table \refersec{tab:attributeformencodings}.
   \hline
   \ddag \ \textit{New in \addtoindex{DWARF Version 4}}
 \endlastfoot
-\livelink{chap:DWATsibling}{DW\_AT\_sibling}&0x01&reference 
+\livelink{chap:DWATsibling}{DW\_AT\_sibling}&0x01&\livelink{chap:classreference}{reference} 
         \addtoindexx{sibling attribute!encoding} \\
-\livelink{chap:DWATlocation}{DW\_AT\_location}&0x02&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr}\addtoindexx{location attribute!encoding}   \\
-\livelink{chap:DWATname}{DW\_AT\_name}&0x03&string 
+\livelink{chap:DWATlocation}{DW\_AT\_location}&0x02&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr}\addtoindexx{location attribute!encoding}   \\
+\livelink{chap:DWATname}{DW\_AT\_name}&0x03&\livelink{chap:classstring}{string} 
         \addtoindexx{name attribute!encoding} \\
-\livelink{chap:DWATordering}{DW\_AT\_ordering}&0x09&constant 
+\livelink{chap:DWATordering}{DW\_AT\_ordering}&0x09&\livelink{chap:classconstant}{constant} 
         \addtoindexx{ordering attribute!encoding}  \\
-\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}&0x0b&constant, \livelink{chap:exprloc}{exprloc}, 
-        reference \addtoindexx{byte size attribute!encoding} \\
-\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset}&0x0c&constant
-        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit offset attribute!encoding}  \\
-\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}&0x0d&constant
-        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit size attribute!encoding} \\
-\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list}&0x10&\livelink{chap:lineptr}{lineptr} 
+\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}&0x0b&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classreference}{reference} \addtoindexx{byte size attribute!encoding} \\
+\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset}&0x0c&\livelink{chap:classconstant}{constant}
+        \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} \addtoindexx{bit offset attribute!encoding}  \\
+\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}&0x0d&\livelink{chap:classconstant}{constant}
+        \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} \addtoindexx{bit size attribute!encoding} \\
+\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list}&0x10&\livelink{chap:classlineptr}{lineptr} 
         \addtoindexx{statement list attribute!encoding} \\
-\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}&0x11&address 
+\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}&0x11&\livelink{chap:classaddress}{address} 
         \addtoindexx{low PC attribute!encoding}  \\
-\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}&0x12&address, constant 
+\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}&0x12&\livelink{chap:classaddress}{address}, \livelink{chap:classconstant}{constant} 
         \addtoindexx{high PC attribute!encoding}  \\
-\livelink{chap:DWATlanguage}{DW\_AT\_language}&0x13&constant 
+\livelink{chap:DWATlanguage}{DW\_AT\_language}&0x13&\livelink{chap:classconstant}{constant} 
         \addtoindexx{language attribute!encoding}  \\
-\livelink{chap:DWATdiscr}{DW\_AT\_discr}&0x15&reference 
+\livelink{chap:DWATdiscr}{DW\_AT\_discr}&0x15&\livelink{chap:classreference}{reference} 
         \addtoindexx{discriminant attribute!encoding}  \\
-\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}&0x16&constant 
+\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}&0x16&\livelink{chap:classconstant}{constant} 
         \addtoindexx{discriminant value attribute!encoding}  \\
-\livelink{chap:DWATvisibility}{DW\_AT\_visibility}&0x17&constant 
+\livelink{chap:DWATvisibility}{DW\_AT\_visibility}&0x17&\livelink{chap:classconstant}{constant} 
         \addtoindexx{visibility attribute!encoding} \\
-\livelink{chap:DWATimport}{DW\_AT\_import}&0x18&reference 
+\livelink{chap:DWATimport}{DW\_AT\_import}&0x18&\livelink{chap:classreference}{reference} 
         \addtoindexx{import attribute!encoding}  \\
-\livelink{chap:DWATstringlength}{DW\_AT\_string\_length}&0x19&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{string length attribute!encoding}  \\
-\livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}&0x1a&reference 
+\livelink{chap:DWATstringlength}{DW\_AT\_string\_length}&0x19&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{string length attribute!encoding}  \\
+\livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}&0x1a&\livelink{chap:classreference}{reference} 
         \addtoindexx{common reference attribute!encoding}  \\
-\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir}&0x1b&string 
+\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir}&0x1b&\livelink{chap:classstring}{string} 
         \addtoindexx{compilation directory attribute!encoding}  \\
-\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}&0x1c&\livelink{chap:block}{block}, constant, string 
+\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}&0x1c&\livelink{chap:classblock}{block}, \livelink{chap:classconstant}{constant}, \livelink{chap:classstring}{string} 
         \addtoindexx{constant value attribute!encoding} \\
-\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type}&0x1d&reference 
+\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type}&0x1d&\livelink{chap:classreference}{reference} 
         \addtoindexx{containing type attribute!encoding} \\
-\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value}&0x1e&reference 
+\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value}&0x1e&\livelink{chap:classreference}{reference} 
         \addtoindexx{default value attribute!encoding} \\
-\livelink{chap:DWATinline}{DW\_AT\_inline}&0x20&constant 
+\livelink{chap:DWATinline}{DW\_AT\_inline}&0x20&\livelink{chap:classconstant}{constant} 
         \addtoindexx{inline attribute!encoding}  \\
-\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional}&0x21&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional}&0x21&\livelink{chap:classflag}{flag} 
         \addtoindexx{is optional attribute!encoding} \\
-\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}&0x22&constant
-        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{lower bound attribute!encoding}  \\
-\livelink{chap:DWATproducer}{DW\_AT\_producer}&0x25&string \addtoindexx{producer attribute!encoding}  \\
-\livelink{chap:DWATprototyped}{DW\_AT\_prototyped}&0x27&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}&0x22&\livelink{chap:classconstant}{constant}
+        \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} \addtoindexx{lower bound attribute!encoding}  \\
+\livelink{chap:DWATproducer}{DW\_AT\_producer}&0x25&\livelink{chap:classstring}{string} \addtoindexx{producer attribute!encoding}  \\
+\livelink{chap:DWATprototyped}{DW\_AT\_prototyped}&0x27&\livelink{chap:classflag}{flag} 
         \addtoindexx{prototyped attribute!encoding}  \\
-\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr}&0x2a&\livelink{chap:exprloc}{exprloc},
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{return address attribute!encoding}  \\
+\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr}&0x2a&\livelink{chap:classexprloc}{exprloc},
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{return address attribute!encoding}  \\
 % FIXME: lower case , not Constant
-\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}&0x2c&constant
-        \livelink{chap:rangelistptr}{rangelistptr} \addtoindexx{start scope attribute!encoding}  \\
-\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}&0x2e&constant,
-        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit stride attribute!encoding}  \\
-\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}&0x2f&constant,
-        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{upper bound attribute!encoding}  \\
-\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}&0x31&reference 
+\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}&0x2c&\livelink{chap:classconstant}{constant}
+        \livelink{chap:classrangelistptr}{rangelistptr} \addtoindexx{start scope attribute!encoding}  \\
+\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}&0x2e&\livelink{chap:classconstant}{constant},
+        \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} \addtoindexx{bit stride attribute!encoding}  \\
+\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}&0x2f&\livelink{chap:classconstant}{constant},
+        \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} \addtoindexx{upper bound attribute!encoding}  \\
+\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}&0x31&\livelink{chap:classreference}{reference} 
         \addtoindexx{abstract origin attribute!encoding}  \\
-\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}&0x32&constant 
+\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}&0x32&\livelink{chap:classconstant}{constant} 
         \addtoindexx{accessibility attribute!encoding}  \\
-\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}&0x33&constant 
+\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}&0x33&\livelink{chap:classconstant}{constant} 
         \addtoindexx{address class attribute!encoding}  \\
-\livelink{chap:DWATartificial}{DW\_AT\_artificial}&0x34&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATartificial}{DW\_AT\_artificial}&0x34&\livelink{chap:classflag}{flag} 
         \addtoindexx{artificial attribute!encoding}  \\
-\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types}&0x35&reference 
+\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types}&0x35&\livelink{chap:classreference}{reference} 
         \addtoindexx{base types attribute!encoding}  \\
-\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention}&0x36&constant 
+\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention}&0x36&\livelink{chap:classconstant}{constant} 
         \addtoindexx{calling convention attribute!encoding} \\
-\livelink{chap:DWATcount}{DW\_AT\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference 
+\livelink{chap:DWATcount}{DW\_AT\_count}&0x37&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} 
         \addtoindexx{count attribute!encoding}  \\
-\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}&0x38&constant
-        \livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} 
+\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}&0x38&\livelink{chap:classconstant}{constant}
+        \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classloclistptr}{loclistptr} 
         \addtoindexx{data member attribute!encoding}  \\
-\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column}&0x39&constant 
+\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column}&0x39&\livelink{chap:classconstant}{constant} 
         \addtoindexx{declaration column attribute!encoding}  \\
-\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}&0x3a&constant 
+\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}&0x3a&\livelink{chap:classconstant}{constant} 
         \addtoindexx{declaration file attribute!encoding}  \\
-\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}&0x3b&constant 
+\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}&0x3b&\livelink{chap:classconstant}{constant} 
         \addtoindexx{declaration line attribute!encoding}  \\
-\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}&0x3c&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}&0x3c&\livelink{chap:classflag}{flag} 
         \addtoindexx{declaration attribute!encoding}  \\
-\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list}&0x3d&\livelink{chap:block}{block} 
+\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list}&0x3d&\livelink{chap:classblock}{block} 
         \addtoindexx{discriminant list attribute!encoding}  \\
-\livelink{chap:DWATencoding}{DW\_AT\_encoding}&0x3e&constant 
+\livelink{chap:DWATencoding}{DW\_AT\_encoding}&0x3e&\livelink{chap:classconstant}{constant} 
         \addtoindexx{encoding attribute!encoding}  \\
-\livelink{chap:DWATexternal}{DW\_AT\_external}&\xiiif&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATexternal}{DW\_AT\_external}&\xiiif&\livelink{chap:classflag}{flag} 
         \addtoindexx{external attribute!encoding}  \\
-\livelink{chap:DWATframebase}{DW\_AT\_frame\_base}&0x40&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{frame base attribute!encoding}  \\
-\livelink{chap:DWATfriend}{DW\_AT\_friend}&0x41&reference 
+\livelink{chap:DWATframebase}{DW\_AT\_frame\_base}&0x40&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{frame base attribute!encoding}  \\
+\livelink{chap:DWATfriend}{DW\_AT\_friend}&0x41&\livelink{chap:classreference}{reference} 
         \addtoindexx{friend attribute!encoding}  \\
-\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}&0x42&constant 
+\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}&0x42&\livelink{chap:classconstant}{constant} 
         \addtoindexx{identifier case attribute!encoding}  \\
-\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info}&0x43&\livelink{chap:macptr}{macptr} 
+\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info}&0x43&\livelink{chap:classmacptr}{macptr} 
         \addtoindexx{macro information attribute!encoding}  \\
-\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item}&0x44&reference 
+\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item}&0x44&\livelink{chap:classreference}{reference} 
         \addtoindexx{name list item attribute!encoding}  \\
-\livelink{chap:DWATpriority}{DW\_AT\_priority}&0x45&reference 
+\livelink{chap:DWATpriority}{DW\_AT\_priority}&0x45&\livelink{chap:classreference}{reference} 
         \addtoindexx{priority attribute!encoding}  \\
-\livelink{chap:DWATsegment}{DW\_AT\_segment}&0x46&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{segment attribute!encoding}  \\
-\livelink{chap:DWATspecification}{DW\_AT\_specification}&0x47&reference 
+\livelink{chap:DWATsegment}{DW\_AT\_segment}&0x46&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{segment attribute!encoding}  \\
+\livelink{chap:DWATspecification}{DW\_AT\_specification}&0x47&\livelink{chap:classreference}{reference} 
         \addtoindexx{specification attribute!encoding}  \\
-\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}&0x48&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{static link attribute!encoding}  \\
-\livelink{chap:DWATtype}{DW\_AT\_type}&0x49&reference 
+\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}&0x48&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{static link attribute!encoding}  \\
+\livelink{chap:DWATtype}{DW\_AT\_type}&0x49&\livelink{chap:classreference}{reference} 
         \addtoindexx{type attribute!encoding}  \\
-\livelink{chap:DWATuselocation}{DW\_AT\_use\_location}&0x4a&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{location list attribute!encoding}  \\
-\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}&0x4b&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATuselocation}{DW\_AT\_use\_location}&0x4a&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{location list attribute!encoding}  \\
+\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}&0x4b&\livelink{chap:classflag}{flag} 
         \addtoindexx{variable parameter attribute!encoding}  \\
-\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}&0x4c&constant 
+\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}&0x4c&\livelink{chap:classconstant}{constant} 
         \addtoindexx{virtuality attribute!encoding}  \\
-\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}&0x4d&\livelink{chap:exprloc}{exprloc}, 
-        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{vtable element location attribute!encoding}  \\
-
-\livelink{chap:DWATallocated}{DW\_AT\_allocated}&0x4e&constant, \livelink{chap:exprloc}{exprloc}, 
-        reference \addtoindexx{allocated attribute!encoding}  \\
-\livelink{chap:DWATassociated}{DW\_AT\_associated}&0x4f&constant, \livelink{chap:exprloc}{exprloc}, 
-        reference \addtoindexx{associated attribute!encoding}  \\
-\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}&0x50&\livelink{chap:exprloc}{exprloc} 
+\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}&0x4d&\livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{vtable element location attribute!encoding}  \\
+\livelink{chap:DWATallocated}{DW\_AT\_allocated}&0x4e&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classreference}{reference} \addtoindexx{allocated attribute!encoding}  \\
+\livelink{chap:DWATassociated}{DW\_AT\_associated}&0x4f&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classreference}{reference} \addtoindexx{associated attribute!encoding}  \\
+\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}&0x50&\livelink{chap:classexprloc}{exprloc} 
         \addtoindexx{data location attribute!encoding}  \\
-\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc}, 
-        reference \addtoindexx{byte stride attribute!encoding}  \\
-\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc}&0x52&address 
+\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride}&0x51&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, 
+        \livelink{chap:classreference}{reference} \addtoindexx{byte stride attribute!encoding}  \\
+\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc}&0x52&\livelink{chap:classaddress}{address} 
         \addtoindexx{entry pc attribute!encoding}  \\
-\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}&0x53&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}&0x53&\livelink{chap:classflag}{flag} 
         \addtoindexx{use UTF8 attribute!encoding}\addtoindexx{UTF-8}  \\
-\livelink{chap:DWATextension}{DW\_AT\_extension}&0x54&reference 
+\livelink{chap:DWATextension}{DW\_AT\_extension}&0x54&\livelink{chap:classreference}{reference} 
         \addtoindexx{extension attribute!encoding}  \\
-\livelink{chap:DWATranges}{DW\_AT\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr} 
+\livelink{chap:DWATranges}{DW\_AT\_ranges}&0x55&\livelink{chap:classrangelistptr}{rangelistptr} 
         \addtoindexx{ranges attribute!encoding}  \\
-\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline}&0x56&address, \livelink{chap:flag}{flag}, 
-        reference, string \addtoindexx{trampoline attribute!encoding}  \\
-\livelink{chap:DWATcallcolumn}{DW\_AT\_call\_column}&0x57&constant 
+\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline}&0x56&\livelink{chap:classaddress}{address}, \livelink{chap:classflag}{flag}, 
+        \livelink{chap:classreference}{reference}, \livelink{chap:classstring}{string} \addtoindexx{trampoline attribute!encoding}  \\
+\livelink{chap:DWATcallcolumn}{DW\_AT\_call\_column}&0x57&\livelink{chap:classconstant}{constant} 
         \addtoindexx{call column attribute!encoding}  \\
-\livelink{chap:DWATcallfile}{DW\_AT\_call\_file}&0x58&constant 
+\livelink{chap:DWATcallfile}{DW\_AT\_call\_file}&0x58&\livelink{chap:classconstant}{constant} 
         \addtoindexx{call file attribute!encoding}  \\
-\livelink{chap:DWATcallline}{DW\_AT\_call\_line}&0x59&constant 
+\livelink{chap:DWATcallline}{DW\_AT\_call\_line}&0x59&\livelink{chap:classconstant}{constant} 
         \addtoindexx{call line attribute!encoding}  \\
-\livelink{chap:DWATdescription}{DW\_AT\_description}&0x5a&string 
+\livelink{chap:DWATdescription}{DW\_AT\_description}&0x5a&\livelink{chap:classstring}{string} 
         \addtoindexx{description attribute!encoding}  \\
-\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale}&0x5b&constant 
+\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale}&0x5b&\livelink{chap:classconstant}{constant} 
         \addtoindexx{binary scale attribute!encoding}  \\
-\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale}&0x5c&constant 
+\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale}&0x5c&\livelink{chap:classconstant}{constant} 
         \addtoindexx{decimal scale attribute!encoding}  \\
-\livelink{chap:DWATsmall}{DW\_AT\_small} &0x5d&reference 
+\livelink{chap:DWATsmall}{DW\_AT\_small} &0x5d&\livelink{chap:classreference}{reference} 
         \addtoindexx{small attribute!encoding}  \\
-\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign}&0x5e&constant 
+\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign}&0x5e&\livelink{chap:classconstant}{constant} 
         \addtoindexx{decimal scale attribute!encoding}  \\
-\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count}&0x5f&constant 
+\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count}&0x5f&\livelink{chap:classconstant}{constant} 
         \addtoindexx{digit count attribute!encoding}  \\
-\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string}&0x60&string 
+\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string}&0x60&\livelink{chap:classstring}{string} 
         \addtoindexx{picture string attribute!encoding}  \\
-\livelink{chap:DWATmutable}{DW\_AT\_mutable}&0x61&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATmutable}{DW\_AT\_mutable}&0x61&\livelink{chap:classflag}{flag} 
         \addtoindexx{mutable attribute!encoding}  \\
-
-\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}&0x62&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}&0x62&\livelink{chap:classflag}{flag} 
         \addtoindexx{thread scaled attribute!encoding}  \\
-\livelink{chap:DWATexplicit}{DW\_AT\_explicit}&0x63&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATexplicit}{DW\_AT\_explicit}&0x63&\livelink{chap:classflag}{flag} 
         \addtoindexx{explicit attribute!encoding}  \\
-\livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}&0x64&reference 
+\livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}&0x64&\livelink{chap:classreference}{reference} 
         \addtoindexx{object pointer attribute!encoding}  \\
-\livelink{chap:DWATendianity}{DW\_AT\_endianity}&0x65&constant 
+\livelink{chap:DWATendianity}{DW\_AT\_endianity}&0x65&\livelink{chap:classconstant}{constant} 
         \addtoindexx{endianity attribute!encoding}  \\
-\livelink{chap:DWATelemental}{DW\_AT\_elemental}&0x66&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATelemental}{DW\_AT\_elemental}&0x66&\livelink{chap:classflag}{flag} 
         \addtoindexx{elemental attribute!encoding}  \\
-\livelink{chap:DWATpure}{DW\_AT\_pure}&0x67&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATpure}{DW\_AT\_pure}&0x67&\livelink{chap:classflag}{flag} 
         \addtoindexx{pure attribute!encoding}  \\
-\livelink{chap:DWATrecursive}{DW\_AT\_recursive}&0x68&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATrecursive}{DW\_AT\_recursive}&0x68&\livelink{chap:classflag}{flag} 
         \addtoindexx{recursive attribute!encoding}  \\
-\livelink{chap:DWATsignature}{DW\_AT\_signature} \ddag &0x69&reference 
+\livelink{chap:DWATsignature}{DW\_AT\_signature} \ddag &0x69&\livelink{chap:classreference}{reference} 
         \addtoindexx{signature attribute!encoding}  \\ 
-\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \ddag &0x6a&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \ddag &0x6a&\livelink{chap:classflag}{flag} 
         \addtoindexx{main subprogram attribute!encoding}  \\
-\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \ddag &0x6b&constant 
+\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \ddag &0x6b&\livelink{chap:classconstant}{constant} 
         \addtoindexx{data bit offset attribute!encoding}  \\
-\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} \ddag &0x6c&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} \ddag &0x6c&\livelink{chap:classflag}{flag} 
         \addtoindexx{constant expression attribute!encoding}  \\
-\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class} \ddag &0x6d&\livelink{chap:flag}{flag} 
+\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class} \ddag &0x6d&\livelink{chap:classflag}{flag} 
         \addtoindexx{enumeration class attribute!encoding}  \\
-\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \ddag &0x6e&string 
+\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \ddag &0x6e&\livelink{chap:classstring}{string} 
         \addtoindexx{linkage name attribute!encoding}  \\
 \livelink{chap:DWXXXlohiuser}{DW\_AT\_lo\_user}&0x2000 & --- \addtoindexx{low user attribute encoding}  \\
 \livelink{chap:DWXXXlohiuser}{DW\_AT\_hi\_user}&\xiiifff& --- \addtoindexx{high user attribute encoding}  \\
@@ -1225,31 +1229,31 @@ Table \refersec{tab:attributeformencodings}.
   \hline
   \ddag \ \textit{New in \addtoindex{DWARF Version 4}}
 \endlastfoot
-\livelink{chap:DWFORMaddr}{DW\_FORM\_addr}&0x01&address  \\
-\livelink{chap:DWFORMblock2}{DW\_FORM\_block2}&0x03&\livelink{chap:block}{block} \\
-\livelink{chap:DWFORMblock4}{DW\_FORM\_block4}&0x04&\livelink{chap:block}{block}  \\
-\livelink{chap:DWFORMdata2}{DW\_FORM\_data2}&0x05&constant \\
-\livelink{chap:DWFORMdata4}{DW\_FORM\_data4}&0x06&constant \\
-\livelink{chap:DWFORMdata8}{DW\_FORM\_data8}&0x07&constant \\
-\livelink{chap:DWFORMstring}{DW\_FORM\_string}&0x08&string \\
-\livelink{chap:DWFORMblock}{DW\_FORM\_block}&0x09&\livelink{chap:block}{block} \\
-\livelink{chap:DWFORMblock1}{DW\_FORM\_block1}&0x0a&\livelink{chap:block}{block} \\
-\livelink{chap:DWFORMdata1}{DW\_FORM\_data1}&0x0b&constant \\
-\livelink{chap:DWFORMflag}{DW\_FORM\_flag}&0x0c&\livelink{chap:flag}{flag} \\
-\livelink{chap:DWFORMsdata}{DW\_FORM\_sdata}&0x0d&constant    \\
-\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}&0x0e&string         \\
-\livelink{chap:DWFORMudata}{DW\_FORM\_udata}&0x0f&constant         \\
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}&0x10&reference         \\
-\livelink{chap:DWFORMref1}{DW\_FORM\_ref1}&0x11&reference          \\
-\livelink{chap:DWFORMref2}{DW\_FORM\_ref2}&0x12&reference         \\
-\livelink{chap:DWFORMref4}{DW\_FORM\_ref4}&0x13&reference         \\
-\livelink{chap:DWFORMref8}{DW\_FORM\_ref8}&0x14&reference \\
-\livelink{chap:DWFORMrefudata}{DW\_FORM\_ref\_udata}&0x15&reference  \\
+\livelink{chap:DWFORMaddr}{DW\_FORM\_addr}&0x01&\livelink{chap:classaddress}{address}  \\
+\livelink{chap:DWFORMblock2}{DW\_FORM\_block2}&0x03&\livelink{chap:classblock}{block} \\
+\livelink{chap:DWFORMblock4}{DW\_FORM\_block4}&0x04&\livelink{chap:classblock}{block}  \\
+\livelink{chap:DWFORMdata2}{DW\_FORM\_data2}&0x05&\livelink{chap:classconstant}{constant} \\
+\livelink{chap:DWFORMdata4}{DW\_FORM\_data4}&0x06&\livelink{chap:classconstant}{constant} \\
+\livelink{chap:DWFORMdata8}{DW\_FORM\_data8}&0x07&\livelink{chap:classconstant}{constant} \\
+\livelink{chap:DWFORMstring}{DW\_FORM\_string}&0x08&\livelink{chap:classstring}{string} \\
+\livelink{chap:DWFORMblock}{DW\_FORM\_block}&0x09&\livelink{chap:classblock}{block} \\
+\livelink{chap:DWFORMblock1}{DW\_FORM\_block1}&0x0a&\livelink{chap:classblock}{block} \\
+\livelink{chap:DWFORMdata1}{DW\_FORM\_data1}&0x0b&\livelink{chap:classconstant}{constant} \\
+\livelink{chap:DWFORMflag}{DW\_FORM\_flag}&0x0c&\livelink{chap:classflag}{flag} \\
+\livelink{chap:DWFORMsdata}{DW\_FORM\_sdata}&0x0d&\livelink{chap:classconstant}{constant}    \\
+\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}&0x0e&\livelink{chap:classstring}{string}         \\
+\livelink{chap:DWFORMudata}{DW\_FORM\_udata}&0x0f&\livelink{chap:classconstant}{constant}         \\
+\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}&0x10&\livelink{chap:classreference}{reference}         \\
+\livelink{chap:DWFORMref1}{DW\_FORM\_ref1}&0x11&\livelink{chap:classreference}{reference}          \\
+\livelink{chap:DWFORMref2}{DW\_FORM\_ref2}&0x12&\livelink{chap:classreference}{reference}         \\
+\livelink{chap:DWFORMref4}{DW\_FORM\_ref4}&0x13&\livelink{chap:classreference}{reference}         \\
+\livelink{chap:DWFORMref8}{DW\_FORM\_ref8}&0x14&\livelink{chap:classreference}{reference} \\
+\livelink{chap:DWFORMrefudata}{DW\_FORM\_ref\_udata}&0x15&\livelink{chap:classreference}{reference}  \\
 \livelink{chap:DWFORMindirect}{DW\_FORM\_indirect}&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset} \ddag &0x17&\livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr}, \livelink{chap:rangelistptr}{rangelistptr} \\
-\livelink{chap:DWFORMexprloc}{DW\_FORM\_exprloc} \ddag &0x18&\livelink{chap:exprloc}{exprloc} \\
-\livelink{chap:DWFORMflagpresent}{DW\_FORM\_flag\_present} \ddag &0x19&\livelink{chap:flag}{flag} \\
-\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8} \ddag &0x20&reference \\
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset} \ddag &0x17&\livelink{chap:classlineptr}{lineptr}, \livelink{chap:classloclistptr}{loclistptr}, \livelink{chap:classmacptr}{macptr}, \livelink{chap:classrangelistptr}{rangelistptr} \\
+\livelink{chap:DWFORMexprloc}{DW\_FORM\_exprloc} \ddag &0x18&\livelink{chap:classexprloc}{exprloc} \\
+\livelink{chap:DWFORMflagpresent}{DW\_FORM\_flag\_present} \ddag &0x19&\livelink{chap:classflag}{flag} \\
+\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8} \ddag &0x20&\livelink{chap:classreference}{reference} \\
  
 \end{longtable}
 \end{centering}
@@ -1515,6 +1519,7 @@ that contains a DWARF location description. The length
 specifies the number of bytes in that block. The two offsets
 are the same size as an address on the target machine.
 
+\needlines{5}
 A base address selection entry and an 
 \addtoindexx{end of list entry!in location list}
 end of list entry each
@@ -1574,7 +1579,7 @@ Table \refersec{tab:basetypeencodingvalues}
 \end{longtable}
 \end{centering}
 
-
+\needlines{4}
 The encodings of the constants used in the 
 \livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign} attribute 
 are given in 
@@ -1932,8 +1937,8 @@ Table \refersec{tab:discriminantdescriptorencodings}.
   \hline
 \endlastfoot
 
-\livetarg{chap:DWDSClabel}{DW\_DSC\_label}&0x00 \\
-\livetarg{chap:DWDSCrange}{DW\_DSC\_range}&0x01 \\
+\livelink{chap:DWDSClabel}{DW\_DSC\_label}&0x00 \\
+\livelink{chap:DWDSCrange}{DW\_DSC\_range}&0x01 \\
 
 \end{longtable}
 \end{centering}
@@ -1949,7 +1954,7 @@ with a header consisting of:
 \begin{enumerate}[1. ]
 
 \item \texttt{unit\_length} (\livelink{datarep:initiallengthvalues}{initial length}) \\
-\addtoindexx{\texttt{unit\_length}}
+\addttindexx{unit\_length}
 A 4\dash byte or 12\dash byte unsigned integer 
 \addtoindexx{initial length}
 representing the length
@@ -2018,7 +2023,7 @@ section begins with a header containing:
 % these tables.
 
 \item \texttt{unit\_length} (\livelink{datarep:initiallengthvalues}{initial length}) \\
-\addtoindexx{\texttt{unit\_length}}
+\addttindexx{unit\_length}
 A 4-byte or 12-byte length containing the length of the
 \addtoindexx{initial length}
 set of entries for this compilation unit, not including the