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
 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.}
 \_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}) \\
 \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
 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.
 
 (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 
 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
 
 \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
 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}) \\
 \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
 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.
 
 (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 
 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
 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
 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 
 \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
 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}) \\
 
 
 \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
 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}
 \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.
 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 
 \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
 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}
 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}). 
 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.
 
 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}
 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}
 
 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}
 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}).
 \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.
 
 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, 
 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}
 \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}). 
 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}).
 
 (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 
 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.
 
 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}).
 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
 \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}).
 
 
 (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
 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 
 \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;
 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}).
 
 
 (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 
 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}
 (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
 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}
 
 \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}
 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 
 There are three types of reference.
 
 The 
@@ -951,7 +956,8 @@ units.}
 debugging information entry for that unit, not the preceding
 header.}
 
 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}
 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}
 \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 
 \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
   \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} \\
         \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} \\
         \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}  \\
         \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} \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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} \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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} \\
         \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} \\
         \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} \\
         \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}  \\
         \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} \\
         \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}  \\
         \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
 % 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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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} \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\ 
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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}  \\
         \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
   \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: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}
  
 \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.
 
 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
 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}
 
 \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 
 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
 
   \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}
 
 \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}) \\
 \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
 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}) \\
 % 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
 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