Completed integration and use of new name commands (with generous
authorRon Brender <ron.brender@gmail.com>
Thu, 10 Oct 2013 19:15:50 +0000 (15:15 -0400)
committerRon Brender <ron.brender@gmail.com>
Thu, 10 Oct 2013 19:15:50 +0000 (15:15 -0400)
help from David Anderson).

Signed-off-by: Ron Brender <ron.brender@gmail.com>
14 files changed:
dwarf5/latexdoc/attributesbytag.tex
dwarf5/latexdoc/changesummary.tex
dwarf5/latexdoc/compression.tex
dwarf5/latexdoc/dataobject.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/debugsectionrelationships.tex
dwarf5/latexdoc/dwarf5.tex
dwarf5/latexdoc/dwarfnamecmds.tex
dwarf5/latexdoc/examples.tex
dwarf5/latexdoc/generaldescription.tex
dwarf5/latexdoc/introduction.tex
dwarf5/latexdoc/otherdebugginginformation.tex
dwarf5/latexdoc/programscope.tex
dwarf5/latexdoc/typeentries.tex

index d575a54..082297c 100644 (file)
@@ -19,10 +19,10 @@ In the following table,
 \livetarg{chap:DECL} 
 means include all three of the
 \addtoindex{declaration coordinates} 
-\addtoindexx{declaration coordinates|see {DW\_AT\_decl\_file, DW\_AT\_decl\_line, DW\_AT\_decl\_column}}
-\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column},
-\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}, and 
-\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}.
+\addtoindexx{declaration coordinates|see {\DWATdeclfileNAME, \DWATdecllineNAME, \DWATdeclcolumnNAME}}
+\DWATdeclcolumn,
+\DWATdeclfile{} and 
+\DWATdeclline.
 
 \label{tab:attributesbytag}
 \setlength{\extrarowheight}{0.1cm}
@@ -37,809 +37,809 @@ means include all three of the
   \hline
 \endlastfoot
 
-\livelink{chap:DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration
+\DWTAGaccessdeclaration{
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATaccessibility{} \\
+&\DWATdescription{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+\DWTAGarraytype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
-&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride} \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATordering}{DW\_AT\_ordering} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+&\DWATabstractorigin{} \\
+&\DWATaccessibility{} \\
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATbitsize{} \\
+&\DWATbitstride{} \\
+&\DWATbytesize{} \\
+&\DWATdatalocation{} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATname{} \\
+&\DWATordering{} \\
+&\DWATsibling{} \\
+&\DWATspecification{} \\
+&\DWATstartscope{} \\
+&\DWATtype{} \\
+&\DWATvisibility{} \\
+
+\hline
+\DWTAGbasetype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale} \\
-&\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset} \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
-&\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale} \\
-&\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count} \\
-&\livelink{chap:DWATencoding}{DW\_AT\_encoding} \\
-&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATsmall}{DW\_AT\_small} \\
-
-\hline
-\livelink{chap:DWTAGcatchblock}{DW\_TAG\_catch\_block}
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATbinaryscale{} \\
+&\DWATbitoffset{} \\
+&\DWATbitsize{} \\
+&\DWATbytesize{} \\
+&\DWATdatabitoffset{} \\
+&\DWATdatalocation{} \\
+&\DWATdecimalscale{} \\
+&\DWATdecimalsign{} \\
+&\DWATdescription{} \\
+&\DWATdigitcount{} \\
+&\DWATencoding{} \\
+&\DWATendianity{} \\
+&\DWATname{} \\
+&\DWATpicturestring{} \\
+&\DWATsibling{} \\
+&\DWATsmall{} \\
+
+\hline
+\DWTAGcatchblock
 &\livelink{chap:DECL}{DECL} \\*
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATabstractorigin{} \\
+&\DWAThighpc{} \\
+&\DWATlowpc{} \\
+&\DWATranges{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
+\DWTAGclasstype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+&\DWATabstractorigin{} \\
+&\DWATaccessibility{} \\
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATbitsize{} \\
+&\DWATbytesize{} \\
+&\DWATdatalocation{} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATsignature{} \\
+&\DWATspecification{} \\
+&\DWATstartscope{} \\
+&\DWATvisibility{} \\
 
 \hline
 \DWTAGcoarraytype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATtype{} \\
 
 \hline
-\livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}
+\DWTAGcommonblock
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
-&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATlinkagename{} \\
+&\DWATlocation{} \\
+&\DWATname{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\
+&\DWATvisibility{} \\
 
 \hline
-\livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion}
+\DWTAGcommoninclusion
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
-&\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types} \\
-&\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir} \\
-&\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case} \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
-&\livelink{chap:DWATlanguage}{DW\_AT\_language} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info} \\
-&\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATproducer}{DW\_AT\_producer} \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list} \\
-&\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8} \\
-
-\hline
-\livelink{chap:DWTAGcondition}{DW\_TAG\_condition}
+&\DWATcommonreference{} \\
+&\DWATdeclaration{} \\
+&\DWATsibling{} \\
+&\DWATvisibility{} \\
+
+\hline
+\DWTAGcompileunit
+&\DWATbasetypes{} \\
+&\DWATcompdir{} \\
+&\DWATidentifiercase{} \\
+&\DWAThighpc{} \\
+&\DWATlanguage{} \\
+&\DWATlowpc{} \\
+&\DWATmacroinfo{} \\
+&\DWATmainsubprogram{} \\
+&\DWATname{} \\
+&\DWATproducer{} \\
+&\DWATranges{} \\
+&\DWATsegment{} \\
+&\DWATstmtlist{} \\
+&\DWATuseUTFeight{} \\
+
+\hline
+\DWTAGcondition
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+\DWTAGconsttype
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATdatalocation{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATtype{} \\
 
 \hline
-\livelink{chap:DWTAGconstant}{DW\_TAG\_constant}
+\DWTAGconstant
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
-&\livelink{chap:DWATexternal}{DW\_AT\_external} \\
-&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+&\DWATaccessibility{} \\
+&\DWATconstvalue{} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATendianity{} \\
+&\DWATexternal{} \\
+&\DWATlinkagename{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
+&\DWATtype{} \\
+&\DWATvisibility{} \\
 
 \hline
-\livelink{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure}
-&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
+\DWTAGdwarfprocedure
+&\DWATlocation{} \\
 
 \hline
-\livelink{chap:DWTAGentrypoint}{DW\_TAG\_entry\_point}
+\DWTAGentrypoint
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATframebase}{DW\_AT\_frame\_base} \\
-&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-
-\hline
-\livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}
+&\DWATaddressclass{} \\
+&\DWATdescription{} \\
+&\DWATframebase{} \\
+&\DWATlinkagename{} \\
+&\DWATlowpc{} \\
+&\DWATname{} \\
+&\DWATreturnaddr{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\
+&\DWATstaticlink{} \\
+&\DWATtype{} \\
+
+\hline
+\DWTAGenumerationtype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
-&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride} \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
-&\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}
+&\DWATabstractorigin{} \\
+&\DWATaccessibility{} \\
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATbitsize{} \\
+&\DWATbitstride{} \\
+&\DWATbytesize{} \\
+&\DWATbytestride{} \\
+&\DWATdatalocation{} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATenumclass{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATsignature{} \\
+&\DWATspecification{} \\
+&\DWATstartscope{} \\
+&\DWATtype{} \\
+&\DWATvisibility{} \\
+
+\hline
+\DWTAGenumerator
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATconstvalue{} \\
+&\DWATdescription{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGfiletype}{DW\_TAG\_file\_type}
+\DWTAGfiletype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+&\DWATabstractorigin{} \\
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATbitsize{} \\
+&\DWATbytesize{} \\
+&\DWATdatalocation{} \\
+&\DWATdescription{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
+&\DWATtype{} \\
+&\DWATvisibility{} \\
+
+\hline
+\DWTAGformalparameter
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATartificial}{DW\_AT\_artificial} \\
-&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
-&\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
-&\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional} \\
-&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter} \\
-
-\hline
-\livelink{chap:DWTAGfriend}{DW\_TAG\_friend}
+&\DWATabstractorigin{} \\
+&\DWATartificial{} \\
+&\DWATconstvalue{} \\
+&\DWATdefaultvalue{} \\
+&\DWATdescription{} \\
+&\DWATendianity{} \\
+&\DWATisoptional{} \\
+&\DWATlocation{} \\
+&\DWATname{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\
+&\DWATtype{} \\
+&\DWATvariableparameter{} \\
+
+\hline
+\DWTAGfriend
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATfriend}{DW\_AT\_friend} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATabstractorigin{} \\
+&\DWATfriend{} \\
+&\DWATsibling{} \\
 
 \hline
 % Please keep in synch with DW_TAG_subrange_type.
 \DWTAGgenericsubrange
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}  \\
-&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}  \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}  \\
-&\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride}  \\
-&\livelink{chap:DWATcount}{DW\_AT\_count}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\*
-&\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}  \\*
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATbitsize{}  \\
+&\DWATbitstride{}  \\
+&\DWATbytesize{}  \\
+&\DWATbytestride{}  \\
+&\DWATcount{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATlowerbound{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATthreadsscaled{}  \\
+&\DWATtype{}  \\*
+&\DWATupperbound{}  \\*
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGimporteddeclaration
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATimport}{DW\_AT\_import} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\DWATaccessibility{} \\
+&\DWATdescription{} \\
+&\DWATimport{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
 
 \hline
-\livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module}
+\DWTAGimportedmodule
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATimport}{DW\_AT\_import} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\DWATimport{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
 
 \hline
-\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
-&\livelink{chap:DWATimport}{DW\_AT\_import} \\
+\DWTAGimportedunit
+&\DWATimport{} \\
 
 \hline
-\livelink{chap:DWTAGinheritance}{DW\_TAG\_inheritance}
+\DWTAGinheritance
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality} \\
-
-\hline
-\livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATcallcolumn}{DW\_AT\_call\_column} \\
-&\livelink{chap:DWATcallfile}{DW\_AT\_call\_file} \\
-&\livelink{chap:DWATcallline}{DW\_AT\_call\_line} \\
-&\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} \\
-&\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
-&\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline} \\
-
-\hline
-\livelink{chap:DWTAGinterfacetype}{DW\_TAG\_interface\_type}
+&\DWATaccessibility{} \\
+&\DWATdatamemberlocation{} \\
+&\DWATsibling{} \\
+&\DWATtype{} \\
+&\DWATvirtuality{} \\
+
+\hline
+\DWTAGinlinedsubroutine
+&\DWATabstractorigin{} \\
+&\DWATcallcolumn{} \\
+&\DWATcallfile{} \\
+&\DWATcallline{} \\
+&\DWATconstexpr{} \\
+&\DWATentrypc{} \\
+&\DWAThighpc{} \\
+&\DWATlowpc{} \\
+&\DWATranges{} \\
+&\DWATreturnaddr{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
+&\DWATtrampoline{} \\
+
+\hline
+\DWTAGinterfacetype
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\DWATaccessibility{} \\
+&\DWATdescription{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
 
 \hline
-\livelink{chap:DWTAGlabel}{DW\_TAG\_label}
+\DWTAGlabel
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATabstractorigin{} \\
+&\DWATdescription{} \\
+&\DWATlowpc{} \\
+&\DWATname{} \\
+&\DWATsegment{} \\
+&\DWATstartscope{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGlexicalblock}{DW\_TAG\_lexical\_block}
+\DWTAGlexicalblock
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATabstractorigin{} \\
+&\DWATdescription{} \\
+&\DWAThighpc{} \\
+&\DWATlowpc{} \\
+&\DWATname{} \\
+&\DWATranges{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGmember}{DW\_TAG\_member}
+\DWTAGmember
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset} \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
-&\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \\
-&\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATmutable}{DW\_AT\_mutable} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGmodule}{DW\_TAG\_module}
+&\DWATaccessibility{} \\
+&\DWATbitoffset{} \\
+&\DWATbitsize{} \\
+&\DWATbytesize{} \\
+&\DWATdatabitoffset{} \\
+&\DWATdatamemberlocation{} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATmutable{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATtype{} \\
+&\DWATvisibility{} \\
+
+\hline
+\DWTAGmodule
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATpriority}{DW\_AT\_priority} \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\*
-&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\*
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGnamelist}{DW\_TAG\_namelist}
+&\DWATaccessibility{} \\
+&\DWATdeclaration{} \\
+&\DWATdescription{} \\
+&\DWATentrypc{} \\
+&\DWAThighpc{} \\
+&\DWATlowpc{} \\
+&\DWATname{} \\
+&\DWATpriority{} \\
+&\DWATranges{} \\
+&\DWATsegment{} \\
+&\DWATsibling{} \\*
+&\DWATspecification{} \\*
+&\DWATvisibility{} \\
+
+\hline
+\DWTAGnamelist
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+&\DWATabstractorigin{} \\
+&\DWATaccessibility{} \\
+&\DWATdeclaration{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATvisibility{} \\
 
 \hline
-\livelink{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item}
+\DWTAGnamelistitem
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\DWATnamelistitem{} \\
+&\DWATsibling{} \\
 
 \hline
-\livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+\DWTAGnamespace
 &\livelink{chap:DECL}{DECL} \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
-&\livelink{chap:DWATextension}{DW\_AT\_extension} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
-
-\hline
-\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type}
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
-&\livelink{chap:DWATname}{DW\_AT\_name} \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
-&\livelink{chap:DWATtype}{DW\_AT\_type} \\
-
-\hline
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit}
-&\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types}  \\  
-&\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}  \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}  \\
-&\livelink{chap:DWATlanguage}{DW\_AT\_language}  \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}  \\
-&\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info}  \\
-&\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATproducer}{DW\_AT\_producer}  \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges}  \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment}  \\
-&\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list}  \\
-&\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}  \\
-
-\hline
-\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+&\DWATdescription{} \\
+&\DWATextension{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATstartscope{} \\
+
+\hline
+\DWTAGpackedtype
+&\DWATallocated{} \\
+&\DWATassociated{} \\
+&\DWATdatalocation{} \\
+&\DWATname{} \\
+&\DWATsibling{} \\
+&\DWATtype{} \\
+
+\hline
+\DWTAGpartialunit
+&\DWATbasetypes{}  \\  
+&\DWATcompdir{}  \\
+&\DWATdescription{}  \\
+&\DWATidentifiercase{}  \\
+&\DWAThighpc{}  \\
+&\DWATlanguage{}  \\
+&\DWATlowpc{}  \\
+&\DWATmacroinfo{}  \\
+&\DWATmainsubprogram{}  \\
+&\DWATname{}  \\
+&\DWATproducer{}  \\
+&\DWATranges{}  \\
+&\DWATsegment{}  \\
+&\DWATstmtlist{}  \\
+&\DWATuseUTFeight{}  \\
+
+\hline
+\DWTAGpointertype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
+&\DWATaddressclass{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATdatalocation{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
 
 \hline
-\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}
+\DWTAGptrtomembertype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-&\livelink{chap:DWATuselocation}{DW\_AT\_use\_location}  \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}  \\*
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\*
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-
-\hline
-\livelink{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type}
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-
-\hline
-\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type}
+&\DWATabstractorigin{}  \\
+&\DWATaddressclass{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATcontainingtype{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
+&\DWATuselocation{}  \\
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGreferencetype
+&\DWATaddressclass{}  \\*
+&\DWATallocated{}  \\*
+&\DWATassociated{}  \\
+&\DWATdatalocation{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
+
+\hline
+\DWTAGrestricttype
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATdatalocation{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
+
+\hline
+\DWTAGrvaluereferencetype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
+&\DWATaddressclass{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATdatalocation{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
 
 \hline
-\livelink{chap:DWTAGsettype}{DW\_TAG\_set\_type}
+\DWTAGsettype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}  \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type}
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATcount}{DW\_AT\_count}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-
-\hline
-\livelink{chap:DWTAGstringtype}{DW\_TAG\_string\_type}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATbitsize{}  \\
+&\DWATbytesize{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATname{}  \\
+&\DWATstartscope{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGsharedtype
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATcount{}  \\
+&\DWATdatalocation{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATtype{}  \\
+
+\hline
+\DWTAGstringtype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}  \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}  \\
-&\livelink{chap:DWATstringlength}{DW\_AT\_string\_length}  \\
-&\livelink{chap:DWATstringlengthbitsize}{DW\_AT\_string\_length\_bit\_size}  \\
-&\livelink{chap:DWATstringlengthbytesize}{DW\_AT\_string\_length\_byte\_size}  \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATbitsize{}  \\
+&\DWATbytesize{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATstartscope{}  \\
+&\DWATstringlength{}  \\
+&\DWATstringlengthbitsize{}  \\
+&\DWATstringlengthbytesize{}  \\
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGstructuretype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}  \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATsignature}{DW\_AT\_signature}  \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification}  \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}  \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATbitsize{}  \\
+&\DWATbytesize{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATsignature{}  \\
+&\DWATspecification{}  \\
+&\DWATstartscope{}  \\
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGsubprogram
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}  \\
-&\livelink{chap:DWATartificial}{DW\_AT\_artificial}  \\
-&\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATelemental}{DW\_AT\_elemental}  \\
-&\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc}  \\
-&\livelink{chap:DWATexplicit}{DW\_AT\_explicit}  \\
-&\livelink{chap:DWATexternal}{DW\_AT\_external}  \\
-&\livelink{chap:DWATframebase}{DW\_AT\_frame\_base}  \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}  \\
-&\livelink{chap:DWATinline}{DW\_AT\_inline}  \\
-&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name}  \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}  \\
-&\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}  \\
-&\livelink{chap:DWATprototyped}{DW\_AT\_prototyped}  \\
-&\livelink{chap:DWATpure}{DW\_AT\_pure}  \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges}  \\
-&\livelink{chap:DWATrecursive}{DW\_AT\_recursive}  \\
-&\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr}  \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification}  \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}  \\
-&\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}  \\
-&\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-&\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}  \\
-&\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}  \\
-
-\hline
-\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATaddressclass{}  \\
+&\DWATartificial{}  \\
+&\DWATcallingconvention{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATelemental{}  \\
+&\DWATentrypc{}  \\
+&\DWATexplicit{}  \\
+&\DWATexternal{}  \\
+&\DWATframebase{}  \\
+&\DWAThighpc{}  \\
+&\DWATinline{}  \\
+&\DWATlinkagename{}  \\
+&\DWATlowpc{}  \\
+&\DWATmainsubprogram{}  \\
+&\DWATname{}  \\
+&\DWATobjectpointer{}  \\
+&\DWATprototyped{}  \\
+&\DWATpure{}  \\
+&\DWATranges{}  \\
+&\DWATrecursive{}  \\
+&\DWATreturnaddr{}  \\
+&\DWATsegment{}  \\
+&\DWATsibling{}  \\
+&\DWATspecification{}  \\
+&\DWATstartscope{}  \\
+&\DWATstaticlink{}  \\
+&\DWATtrampoline{}  \\
+&\DWATtype{}  \\
+&\DWATvisibility{}  \\
+&\DWATvirtuality{}  \\
+&\DWATvtableelemlocation{}  \\
+
+\hline
+\DWTAGsubrangetype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}  \\
-&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}  \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}  \\
-&\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride}  \\
-&\livelink{chap:DWATcount}{DW\_AT\_count}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\*
-&\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}  \\*
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATbitsize{}  \\
+&\DWATbitstride{}  \\
+&\DWATbytesize{}  \\
+&\DWATbytestride{}  \\
+&\DWATcount{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATlowerbound{}  \\
+&\DWATname{}  \\
+&\DWATsibling{}  \\
+&\DWATthreadsscaled{}  \\
+&\DWATtype{}  \\*
+&\DWATupperbound{}  \\*
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGsubroutinetype
 &\livelink{chap:DECL}{DECL}  \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}  \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}  \\
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}  \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}  \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}  \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}  \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}  \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}  \\
-&\livelink{chap:DWATname}{DW\_AT\_name}  \\
-&\livelink{chap:DWATprototyped}{DW\_AT\_prototyped}  \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}  \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}  \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}  \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}  \\
-
-\hline
-\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias}
+&\DWATabstractorigin{}  \\
+&\DWATaccessibility{}  \\
+&\DWATaddressclass{}  \\
+&\DWATallocated{}  \\
+&\DWATassociated{}  \\
+&\DWATdatalocation{}  \\
+&\DWATdeclaration{}  \\
+&\DWATdescription{}  \\
+&\DWATname{}  \\
+&\DWATprototyped{}  \\
+&\DWATsibling{}  \\
+&\DWATstartscope{}  \\
+&\DWATtype{}  \\
+&\DWATvisibility{}  \\
+
+\hline
+\DWTAGtemplatealias
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}   \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}   \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}   \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}   \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}   \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}   \\
-&\livelink{chap:DWATname}{DW\_AT\_name}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATsignature}{DW\_AT\_signature}   \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}   \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}   \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}   \\
-
-\hline
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+&\DWATabstractorigin{}   \\
+&\DWATaccessibility{}   \\
+&\DWATallocated{}   \\
+&\DWATassociated{}   \\
+&\DWATdatalocation{}   \\
+&\DWATdeclaration{}   \\
+&\DWATdescription{}   \\
+&\DWATname{}   \\
+&\DWATsibling{}   \\
+&\DWATsignature{}   \\
+&\DWATstartscope{}   \\
+&\DWATtype{}   \\
+&\DWATvisibility{}   \\
+
+\hline
+\DWTAGtemplatetypeparameter
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}   \\
-&\livelink{chap:DWATname}{DW\_AT\_name}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}   \\
+&\DWATdescription{}   \\
+&\DWATname{}   \\
+&\DWATsibling{}   \\
+&\DWATtype{}   \\
 
 \hline
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter
+\DWTAGtemplatevalueparameter{
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}   \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}   \\
-&\livelink{chap:DWATname}{DW\_AT\_name}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}   \\
+&\DWATconstvalue{}   \\
+&\DWATdescription{}   \\
+&\DWATname{}   \\
+&\DWATsibling{}   \\
+&\DWATtype{}   \\
 
 \hline
-\livelink{chap:DWTAGthrowntype}{DW\_TAG\_thrown\_type}
+\DWTAGthrowntype
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}   \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}   \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}   \\
+&\DWATallocated{}   \\
+&\DWATassociated{}   \\
+&\DWATdatalocation{}   \\
+&\DWATsibling{}   \\
+&\DWATtype{}   \\
 
 \hline
-\livelink{chap:DWTAGtryblock}{DW\_TAG\_try\_block}
+\DWTAGtryblock
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}   \\
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}   \\
-&\livelink{chap:DWATranges}{DW\_AT\_ranges}   \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
+&\DWATabstractorigin{}   \\
+&\DWAThighpc{}   \\
+&\DWATlowpc{}   \\
+&\DWATranges{}   \\
+&\DWATsegment{}   \\
+&\DWATsibling{}   \\
 
 \hline
-\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef}
+\DWTAGtypedef
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}   \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}   \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}   \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}   \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}   \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}   \\
-&\livelink{chap:DWATname}{DW\_AT\_name}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}   \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}   \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}   \\
+&\DWATabstractorigin{}   \\
+&\DWATaccessibility{}   \\
+&\DWATallocated{}   \\
+&\DWATassociated{}   \\
+&\DWATdatalocation{}   \\
+&\DWATdeclaration{}   \\
+&\DWATdescription{}   \\
+&\DWATname{}   \\
+&\DWATsibling{}   \\
+&\DWATstartscope{}   \\
+&\DWATtype{}   \\
+&\DWATvisibility{}   \\
 
 \hline
-\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit}
-&\livelink{chap:DWATlanguage}{DW\_AT\_language}   \\
+\DWTAGtypeunit
+&\DWATlanguage{}   \\
 
 \hline
-\livelink{chap:DWTAGuniontype}{DW\_TAG\_union\_type}
+\DWTAGuniontype
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}   \\
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}   \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}   \\
-&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}   \\
-&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}   \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}   \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}   \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}   \\
-&\livelink{chap:DWATname}{DW\_AT\_name}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATsignature}{DW\_AT\_signature}   \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification}   \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}   \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}   \\
-
-\hline
-\livelink{chap:DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters}
+&\DWATabstractorigin{}   \\
+&\DWATaccessibility{}   \\
+&\DWATallocated{}   \\
+&\DWATassociated{}   \\
+&\DWATbitsize{}   \\
+&\DWATbytesize{}   \\
+&\DWATdatalocation{}   \\
+&\DWATdeclaration{}   \\
+&\DWATdescription{}   \\
+&\DWATname{}   \\
+&\DWATsibling{}   \\
+&\DWATsignature{}   \\
+&\DWATspecification{}   \\
+&\DWATstartscope{}   \\
+&\DWATvisibility{}   \\
+
+\hline
+\DWTAGunspecifiedparameters
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWATartificial}{DW\_AT\_artificial}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
+&\DWATabstractorigin{}   \\
+&\DWATartificial{}   \\
+&\DWATsibling{}   \\
 
 \hline
-\livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}
+\DWTAGunspecifiedtype
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}   \\
-&\livelink{chap:DWATname}{DW\_AT\_name}    \\
+&\DWATdescription{}   \\
+&\DWATname{}    \\
 
 \hline
-\livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+\DWTAGvariable
 &\livelink{chap:DECL}{DECL}    \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}    \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}    \\
-&\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr}    \\
-&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}    \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}    \\
-&\livelink{chap:DWATdescription}{DW\_AT\_description}    \\
-&\livelink{chap:DWATendianity}{DW\_AT\_endianity}    \\
-&\livelink{chap:DWATexternal}{DW\_AT\_external}    \\
-&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name}    \\
-&\livelink{chap:DWATlocation}{DW\_AT\_location}    \\
-&\livelink{chap:DWATname}{DW\_AT\_name}    \\
-&\livelink{chap:DWATsegment}{DW\_AT\_segment}    \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}    \\
-&\livelink{chap:DWATspecification}{DW\_AT\_specification}    \\
-&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}    \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}    \\
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}    \\
-
-\hline
-\livelink{chap:DWTAGvariant}{DW\_TAG\_variant}
+&\DWATabstractorigin{}    \\
+&\DWATaccessibility{}    \\
+&\DWATconstexpr{}    \\
+&\DWATconstvalue{}    \\
+&\DWATdeclaration{}    \\
+&\DWATdescription{}    \\
+&\DWATendianity{}    \\
+&\DWATexternal{}    \\
+&\DWATlinkagename{}    \\
+&\DWATlocation{}    \\
+&\DWATname{}    \\
+&\DWATsegment{}    \\
+&\DWATsibling{}    \\
+&\DWATspecification{}    \\
+&\DWATstartscope{}    \\
+&\DWATtype{}    \\
+&\DWATvisibility{}    \\
+
+\hline
+\DWTAGvariant
 &\livelink{chap:DECL}{DECL}    \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}   \\
-&\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list}   \\
-&\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
+&\DWATaccessibility{}   \\
+&\DWATabstractorigin{}   \\
+&\DWATdeclaration{}   \\
+&\DWATdiscrlist{}   \\
+&\DWATdiscrvalue{}   \\
+&\DWATsibling{}   \\
 
 \hline
-\livelink{chap:DWTAGvariantpart}{DW\_TAG\_variant\_part}
+\DWTAGvariantpart
 &\livelink{chap:DECL}{DECL}   \\
-&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}   \\
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}   \\
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}   \\
-&\livelink{chap:DWATdiscr}{DW\_AT\_discr}   \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}   \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}   \\
-
-\hline
-\livelink{chap:DWTAGvolatiletype}{DW\_TAG\_volatile\_type}  
-&\livelink{chap:DWATallocated}{DW\_AT\_allocated}   \\
-&\livelink{chap:DWATassociated}{DW\_AT\_associated}    \\
-&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}    \\
-&\livelink{chap:DWATname}{DW\_AT\_name}    \\
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}    \\
-&\livelink{chap:DWATtype}{DW\_AT\_type}    \\
-
-\hline
-\livelink{chap:DWTAGwithstmt}{DW\_TAG\_with\_stmt}
-&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}    \\*
-&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}    \\*
-&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}    \\*
-&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}    \\*
-&\livelink{chap:DWATlocation}{DW\_AT\_location}    \\*
-&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}    \\*
-&\livelink{chap:DWATranges}{DW\_AT\_ranges}    \\*
-&\livelink{chap:DWATsegment}{DW\_AT\_segment}    \\*
-&\livelink{chap:DWATsibling}{DW\_AT\_sibling}    \\*
-&\livelink{chap:DWATtype}{DW\_AT\_type}    \\*
-&\livelink{chap:DWATvisibility}{DW\_AT\_visibility}    \\*
+&\DWATabstractorigin{}   \\
+&\DWATaccessibility{}   \\
+&\DWATdeclaration{}   \\
+&\DWATdiscr{}   \\
+&\DWATsibling{}   \\
+&\DWATtype{}   \\
+
+\hline
+\DWTAGvolatiletype{}  
+&\DWATallocated{}   \\
+&\DWATassociated{}    \\
+&\DWATdatalocation{}    \\
+&\DWATname{}    \\
+&\DWATsibling{}    \\
+&\DWATtype{}    \\
+
+\hline
+\DWTAGwithstmt
+&\DWATaccessibility{}    \\*
+&\DWATaddressclass{}    \\*
+&\DWATdeclaration{}    \\*
+&\DWAThighpc{}    \\*
+&\DWATlocation{}    \\*
+&\DWATlowpc{}    \\*
+&\DWATranges{}    \\*
+&\DWATsegment{}    \\*
+&\DWATsibling{}    \\*
+&\DWATtype{}    \\*
+&\DWATvisibility{}    \\*
 \end{longtable}
index 2a042fa..3db1f90 100644 (file)
@@ -14,6 +14,7 @@ This change summary is included only in draft versions of this document.
 \vspace{1cm}
 \begin{tabular}{ll}
 \textbf{Date}  & \textbf{Issue Incorported or Other Change}    \\ \hline       \\
+10/10/2013             & Convert document to use new DWARF name commands (dwarfnamecmds.tex) \\
 10/2/2013              & Fill out the rest of dwarfnamecmds.tex                                        \\
 9/28/2013              & Introduce newdwfnamecommands and related conventions          \\
 9/27/2013              & Editorial work re assumed-rank arrays, other minor cleanups \\
index 4f152c7..1b96914 100644 (file)
@@ -147,7 +147,7 @@ facilities such as simple relocations) are:
 \item A means of referencing from inside one \dotdebuginfo{}
 compilation unit to another 
 \dotdebuginfo{} compilation unit
-(\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} provides this).
+(\DWFORMrefaddr{} provides this).
 
 \item A means of having multiple contributions to specific sections
 (for example, \dotdebuginfo{}, and so on) in a single object file.
@@ -323,31 +323,31 @@ relocations).
 (This is a consequence of separate compilation, not a rule
 imposed by this document.)
 
-\textit{Local labels use references with form \livelink{chap:DWFORMref4}{DW\_FORM\_ref4}
+\textit{Local labels use references with form \DWFORMreffour{}
 or 
-\livelink{chap:DWFORMref8}{DW\_FORM\_ref8}
+\DWFORMrefeight
 (These are affected by relocations
 so 
-\livelink{chap:DWFORMrefudata}{DW\_FORM\_ref\_udata}
-\livelink{chap:DWFORMref1}{DW\_FORM\_ref1} and 
-\livelink{chap:DWFORMref2}{DW\_FORM\_ref2} are
+\DWFORMrefudata
+\DWFORMrefone{} and 
+\DWFORMreftwo{} are
 normally not usable and 
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} is not necessary
+\DWFORMrefaddr{} is not necessary
 for a local label.)}
 
 
-\subsubsection{Use of DW\_TAG\_compile\_unit versus 
-DW\_TAG\_partial\_unit}
+\subsubsection{Use of \addtoindex{DW\_TAG\_compile\_unit} versus 
+\addtoindex{DW\_TAG\_partial\_unit}}
 
 A \addtoindex{section group} compilation unit that uses 
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+\DWTAGcompileunit{}
 is like any other compilation unit, in that its contents
 are evaluated by consumers as though it were an ordinary
 compilation unit.
 
 An \#include directive appearing outside any other
 declarations is a good candidate to be represented using
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+\DWTAGcompileunit
 However, an \#include appearing inside
 a \addtoindex{C++} namespace declaration or a function, for example, is
 not a good candidate because the entities included are not
@@ -356,8 +356,8 @@ necessarily file level entities.
 This also applies to \addtoindex{Fortran} INCLUDE lines when declarations
 are included into a procedure or module context.
 
-Consequently a compiler must use \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} (instead
-of \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+Consequently a compiler must use \DWTAGpartialunit{} (instead
+of \DWTAGcompileunit
 in a \addtoindex{section group} 
 whenever the section group 
 contents are not necessarily globally visible. 
@@ -365,36 +365,36 @@ This
 directs consumers to ignore that compilation unit when scanning
 top level declarations and definitions.
 
-The \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} compilation unit will be referenced
+The \DWTAGpartialunit{} compilation unit will be referenced
 from elsewhere and the referencing locations give the
 appropriate context for interpreting the partial compilation
 unit.
 
-A \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} entry may have, as appropriate, any of
-the attributes assigned to a \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}.
+A \DWTAGpartialunit{} entry may have, as appropriate, any of
+the attributes assigned to a \DWTAGcompileunit.
 
 
 \subsubsection{Use of DW\_TAG\_imported\_unit}
 
-A \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit} debugging information entry has an
-\livelink{chap:DWATimport}{DW\_AT\_import} attribute referencing a \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging information entry.
+A \DWTAGimportedunit{} debugging information entry has an
+\DWATimport{} attribute referencing a \DWTAGcompileunit{} or
+\DWTAGpartialunit{} debugging information entry.
 
-A \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit} debugging information entry refers
+A \DWTAGimportedunit{} debugging information entry refers
 to a 
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or 
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging
+\DWTAGcompileunit{} or 
+\DWTAGpartialunit{} debugging
 information entry to specify that the 
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} contents logically appear at the point
+\DWTAGcompileunit{} or
+\DWTAGpartialunit{} contents logically appear at the point
 of the 
-\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit} entry.
+\DWTAGimportedunit{} entry.
 
 
 \subsubsection{Use of DW\_FORM\_ref\_addr}
 
 Use 
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} to reference from one compilation
+\DWFORMrefaddr{} to reference from one compilation
 unit's debugging information entries to those of another
 compilation unit.
 
@@ -414,7 +414,7 @@ generated based on that name.
 non-section group 
 \dotdebuginfo{},
 from another \dotdebuginfo{} (from anywhere) 
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} is
+\DWFORMrefaddr{} is
 still the form to be used, but a section\dash relative relocation
 generated by use of a non-exported name (often called an
 \doublequote{internal name}) may be used for references within the
@@ -488,21 +488,21 @@ wa.h.
     my.compiler.company.cpp.wa.h.123456
 == section \dotdebuginfo{}
 DW.cpp.wa.h.123456.1:     ! linker global symbol
-    \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
-        \livelink{chap:DWATlanguage}{DW\_AT\_language}(\livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus})
+    \DWTAGcompileunit
+        \DWATlanguage(\DWLANGCplusplus)
         ...  ! other unit attributes
 DW.cpp.wa.h.123456.2:     ! linker global symbol
-    \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("int")
+    \DWTAGbasetype
+        \DWATname("int")
 DW.cpp.wa.h.123456.3:     ! linker global symbol
-    \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("A")
+    \DWTAGstructuretype
+        \DWATname("A")
 DW.cpp.wa.h.123456.4:     ! linker global symbol
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-        \livelink{chap:DWATname}{DW\_AT\_name}("i")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(\livelink{chap:DWFORMrefone}{DW\_FORM\_ref}\textit{<n>} to DW.cpp.wa.h.123456.2)
+        \DWTAGmember
+        \DWATname("i")
+        \DWATtype(\DWFORMref\textit{<n>} to DW.cpp.wa.h.123456.2)
             ! (This is a local reference, so the more
-            ! compact form \livelink{chap:DWFORMrefone}{DW\_FORM\_ref}\textit{<n>} 
+            ! compact form \DWFORMref\textit{<n>} 
             ! for n = 1,2,4, or 8 can be used)
 \end{alltt}
 \end{dwflisting}
@@ -523,16 +523,16 @@ in the \addtoindex{section group} shown above.
 == section \dottext{}
     [generated code for function f]
 == section \dotdebuginfo{}
-    \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+    \DWTAGcompileunit
 .L1:                           ! local (non-linker) symbol
-        \livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.cpp.wa.h.123456.3)
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("f")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.cpp.wa.h.123456.2)
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-                \livelink{chap:DWATname}{DW\_AT\_name}("a")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to .L1)
+        \DWTAGreferencetype
+            \DWATtype(reference to DW.cpp.wa.h.123456.3)
+        \DWTAGsubprogram
+            \DWATname("f")
+            \DWATtype(reference to DW.cpp.wa.h.123456.2)
+            \DWTAGvariable
+                \DWATname("a")
+                \DWATtype(reference to .L1)
         ...
 \end{alltt}
 \end{dwflisting}
@@ -541,12 +541,12 @@ in the \addtoindex{section group} shown above.
 \end{figure}
 
 \needlines{4}
-This example uses \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit
+This example uses \DWTAGcompileunit{
 for the \addtoindex{section group},
 implying that the contents of the compilation unit are
 globally visible (in accordance with 
 \addtoindex{C++} language rules).
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit
+\DWTAGpartialunit{
 is not needed for the same reason.
 
 \subsubsection{Fortran Example}
@@ -595,37 +595,37 @@ CommonStuff.fh.
 == section \dotdebuginfo{}
 
 DW.myf90.CommonStuff.fh.654321.1:    ! linker global symbol
-    \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit}
+    \DWTAGpartialunit
         ! ...compilation unit attributes, including...
-        \livelink{chap:DWATlanguage}{DW\_AT\_language}(\livelink{chap:DWLANGFortran90}{DW\_LANG\_Fortran90})
-        \livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}(\livelink{chap:DWIDcaseinsensitive}{DW\_ID\_case\_insensitive})
+        \DWATlanguage(\DWLANGFortranninety)
+        \DWATidentifiercase(\DWIDcaseinsensitive)
 
 DW.myf90.CommonStuff.fh.654321.2:    ! linker global symbol
-3\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+3\$: \DWTAGarraytype
         ! unnamed
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
+        \DWATtype(reference to DW.f90.F90\$main.f.2)
             ! base type INTEGER
-        \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
+        \DWTAGsubrangetype
+            \DWATtype(reference to DW.f90.F90\$main.f.2)
                 ! base type INTEGER)
-            \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
-            \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(constant 100)
+            \DWATlowerbound(constant 1)
+            \DWATupperbound(constant 100)
 
 DW.myf90.CommonStuff.fh.654321.3:    ! linker global symbol
-    \livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}
-        \livelink{chap:DWATname}{DW\_AT\_name}("Common1")
-        \livelink{chap:DWATlocation}{DW\_AT\_location}(Address of common \nolink{block} Common1)
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("C")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
-            \livelink{chap:DWATlocation}{DW\_AT\_location}(address of C)
+    \DWTAGcommonblock
+        \DWATname("Common1")
+        \DWATlocation(Address of common \nolink{block} Common1)
+        \DWTAGvariable
+            \DWATname("C")
+            \DWATtype(reference to 3\$)
+            \DWATlocation(address of C)
 
 DW.myf90.CommonStuff.fh.654321.4:    ! linker global symbol
-    \livelink{chap:DWTAGconstant}{DW\_TAG\_constant}
-        \livelink{chap:DWATname}{DW\_AT\_name}("SEVEN")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
+    \DWTAGconstant
+        \DWATname("SEVEN")
+        \DWATtype(reference to DW.f90.F90\$main.f.2)
             ! base type INTEGER
-        \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(constant 7)
+        \DWATconstvalue(constant 7)
 \end{alltt}
 \end{dwflisting}
 \caption{Duplicate elimination example \#2: DWARF section group}
@@ -642,20 +642,20 @@ shows the sections for the primary compilation unit.
     [code for function Foo]
 
 == section \dotdebuginfo{}
-    \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("Foo")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
+    \DWTAGcompileunit
+        \DWTAGsubprogram
+            \DWATname("Foo")
+            \DWATtype(reference to DW.f90.F90\$main.f.2)
                 ! base type INTEGER
-            \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
-                \livelink{chap:DWATimport}{DW\_AT\_import}(reference to
+            \DWTAGimportedunit
+                \DWATimport(reference to
                     DW.myf90.CommonStuff.fh.654321.1)
-            \livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion} ! For Common1
-                \livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}(reference to
+            \DWTAGcommoninclusion ! For Common1
+                \DWATcommonreference(reference to
                     DW.myf90.CommonStuff.fh.654321.3)
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable} ! For function result
-                \livelink{chap:DWATname}{DW\_AT\_name}("Foo")
-                    \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
+            \DWTAGvariable ! For function result
+                \DWATname("Foo")
+                    \DWATtype(reference to DW.f90.F90\$main.f.2)
                         ! base type INTEGER
 \end{alltt}
 \end{dwflisting}
@@ -691,23 +691,23 @@ Figure \refersec{fig:duplicateeliminationexample2companiondwarf}.
 \begin{dwflisting}
 \begin{alltt}
 == section \dotdebuginfo{}
-    \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
-        \livelink{chap:DWATname}{DW\_AT\_name}(F90\$main)
-        \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-            \livelink{chap:DWATname}{DW\_AT\_name}("INTEGER")
-            \livelink{chap:DWATencoding}{DW\_AT\_encoding}(\livelink{chap:DWATEsigned}{DW\_ATE\_signed})
-            \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(...)
-
-        \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+    \DWTAGcompileunit
+        \DWATname(F90\$main)
+        \DWTAGbasetype
+            \DWATname("INTEGER")
+            \DWATencoding(\DWATEsigned)
+            \DWATbytesize(...)
+
+        \DWTAGbasetype
             ...
         ...  ! other base types
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F90\$main")
-            \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
-                \livelink{chap:DWATimport}{DW\_AT\_import}(reference to
+        \DWTAGsubprogram
+            \DWATname("F90\$main")
+            \DWTAGimportedunit
+                \DWATimport(reference to
                     DW.myf90.CommonStuff.fh.654321.1)
-            \livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion} ! for Common1
-                \livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}(reference to
+            \DWTAGcommoninclusion ! for Common1
+                \DWATcommonreference(reference to
                     DW.myf90.CommonStuff.fh.654321.3)
             ...
 \end{alltt}
@@ -716,7 +716,7 @@ Figure \refersec{fig:duplicateeliminationexample2companiondwarf}.
 \label{fig:duplicateeliminationexample2companiondwarf}
 \end{figure}
 
-This example uses \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} for the \addtoindex{section group}
+This example uses \DWTAGpartialunit{} for the \addtoindex{section group}
 because the included declarations are not independently
 visible as global entities.
 
@@ -728,10 +728,10 @@ The \addtoindex{C++} example
 \addtoindexx{DWARF duplicate elimination!C++ example}
 in this Section might appear to be equally
 valid as a \addtoindex{C} example. However, it is prudent to include
-a \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
+a \DWTAGimportedunit{}
 in the primary unit 
 (see Figure \refersec{fig:duplicateeliminationexample1primarycompilationunit})
-with an \livelink{chap:DWATimport}{DW\_AT\_import} attribute that refers to the proper unit
+with an \DWATimport{} attribute that refers to the proper unit
 in the \addtoindex{section group}.
 
 \textit{The \addtoindex{C} rules for consistency of global (file scope) symbols
@@ -833,33 +833,33 @@ in
 % We keep the : (colon) away from the attribute so tokenizing in the python tools
 % does not result in adding : into the attribute name.
 \begin{alltt}
-  \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit}
-      \livelink{chap:DWATlanguage}{DW\_AT\_language} : \livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus} (4)
-    \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-        \livelink{chap:DWATname}{DW\_AT\_name} : "N"
+  \DWTAGtypeunit
+      \DWATlanguage : \DWLANGCplusplus (4)
+    \DWTAGnamespace
+        \DWATname : "N"
 L1:
-      \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name} : "C"
-          \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 8
-          \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-          \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 5
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name} : "x"
-            \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-            \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 6
-            \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
-            \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 0
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name} : "y"
-            \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-            \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 7
-            \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
-            \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 4
+      \DWTAGstructuretype
+          \DWATname : "C"
+          \DWATbytesize : 8
+          \DWATdeclfile : 1
+          \DWATdeclline : 5
+        \DWTAGmember
+            \DWATname : "x"
+            \DWATdeclfile : 1
+            \DWATdeclline : 6
+            \DWATtype : reference to L2
+            \DWATdatamemberlocation : 0
+        \DWTAGmember
+            \DWATname : "y"
+            \DWATdeclfile : 1
+            \DWATdeclline : 7
+            \DWATtype : reference to L2
+            \DWATdatamemberlocation : 4
 L2:
-     \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-         \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 4
-         \livelink{chap:DWATencoding}{DW\_AT\_encoding} : \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
-         \livelink{chap:DWATname}{DW\_AT\_name} : "int"
+     \DWTAGbasetype
+         \DWATbytesize : 4
+         \DWATencoding : \DWATEsigned
+         \DWATname : "int"
 \end{alltt}
 \end{dwflisting}
 \caption{Type signature computation \#1: DWARF representation}
@@ -878,47 +878,47 @@ Figure \refersec{fig:typesignaturecomputation1flattenedbytestream}.
 \begin{figure}
 \begin{dwflisting}
 \begin{alltt}
-// Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N"
+// Step 2: 'C' \DWTAGnamespace "N"
 0x43 0x39 0x4e 0x00
-// Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+// Step 3: 'D' \DWTAGstructuretype
 0x44 0x13
-// Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "C"
+// Step 4: 'A' \DWATname \DWFORMstring "C"
 0x41 0x03 0x08 0x43 0x00
-// Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 8
+// Step 4: 'A' \DWATbytesize \DWFORMsdata 8
 0x41 0x0b 0x0d 0x08
 // Step 7: First child ("x")
-    // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+    // Step 3: 'D' \DWTAGmember
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "x"
+    // Step 4: 'A' \DWATname \DWFORMstring "x"
     0x41 0x03 0x08 0x78 0x00
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 0
+    // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 0
     0x41 0x38 0x0d 0x00
-    // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
+    // Step 6: 'T' \DWATtype (type \#2)
     0x54 0x49
-        // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+        // Step 3: 'D' \DWTAGbasetype
         0x44 0x24
-        // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "int"
+        // Step 4: 'A' \DWATname \DWFORMstring "int"
         0x41 0x03 0x08 0x69 0x6e 0x74 0x00
-        // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
+        // Step 4: 'A' \DWATbytesize \DWFORMsdata 4
         0x41 0x0b 0x0d 0x04
-        // Step 4: 'A' \livelink{chap:DWATencoding}{DW\_AT\_encoding} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
+        // Step 4: 'A' \DWATencoding \DWFORMsdata \DWATEsigned
         0x41 0x3e 0x0d 0x05
-        // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type} "int"
+        // Step 7: End of \DWTAGbasetype "int"
         0x00
-    // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "x"
+    // Step 7: End of \DWTAGmember "x"
     0x00
 // Step 7: Second child ("y")
-    // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+    // Step 3: 'D' \DWTAGmember
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "y"
+    // Step 4: 'A' \DWATname \DWFORMstring "y"
     0x41 0x03 0x08 0x78 0x00
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
+    // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 4
     0x41 0x38 0x0d 0x04
-    // Step 6: 'R' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
+    // Step 6: 'R' \DWATtype (type \#2)
     0x52 0x49 0x02
-    // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "y"
+    // Step 7: End of \DWTAGmember "y"
     0x00
-// Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} "C"
+// Step 7: End of \DWTAGstructuretype "C"
 0x00
 \end{alltt}
 \end{dwflisting}
@@ -939,44 +939,44 @@ Figure \refersec{fig:typesignaturecomputation2dwarfrepresentation}.
 \figurepart{1}{2}
 \begin{dwflisting}
 \begin{alltt}
-  \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit}
-      \livelink{chap:DWATlanguage}{DW\_AT\_language} : \livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus} (4)
-    \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-        \livelink{chap:DWATname}{DW\_AT\_name} : "N"
+  \DWTAGtypeunit
+      \DWATlanguage : \DWLANGCplusplus (4)
+    \DWTAGnamespace
+        \DWATname : "N"
 L1:
-        \livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
-             \livelink{chap:DWATname}{DW\_AT\_name} : "A"
-             \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 20
-             \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-             \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 10
-           \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-                \livelink{chap:DWATname}{DW\_AT\_name} : "v\_"
-                \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-                \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 15
-                \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
-                \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 0
-                \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
-          \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-               \livelink{chap:DWATname}{DW\_AT\_name} : "next"
-               \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-               \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 16
-               \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L3
-               \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 4
-               \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
-          \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-               \livelink{chap:DWATname}{DW\_AT\_name} : "bp"
-               \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-               \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 17
-               \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L4
-               \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 8
-               \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
-          \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-               \livelink{chap:DWATname}{DW\_AT\_name} : "c"
-               \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-               \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 18
-               \livelink{chap:DWATtype}{DW\_AT\_type} : 0xd28081e8 dcf5070a (signature for struct C)
-               \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 12
-               \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+        \DWTAGclasstype
+             \DWATname : "A"
+             \DWATbytesize : 20
+             \DWATdeclfile : 1
+             \DWATdeclline : 10
+           \DWTAGmember
+                \DWATname : "v\_"
+                \DWATdeclfile : 1
+                \DWATdeclline : 15
+                \DWATtype : reference to L2
+                \DWATdatamemberlocation : 0
+                \DWATaccessibility : \DWACCESSprivate
+          \DWTAGmember
+               \DWATname : "next"
+               \DWATdeclfile : 1
+               \DWATdeclline : 16
+               \DWATtype : reference to L3
+               \DWATdatamemberlocation : 4
+               \DWATaccessibility : \DWACCESSprivate
+          \DWTAGmember
+               \DWATname : "bp"
+               \DWATdeclfile : 1
+               \DWATdeclline : 17
+               \DWATtype : reference to L4
+               \DWATdatamemberlocation : 8
+               \DWATaccessibility : \DWACCESSprivate
+          \DWTAGmember
+               \DWATname : "c"
+               \DWATdeclfile : 1
+               \DWATdeclline : 18
+               \DWATtype : 0xd28081e8 dcf5070a (signature for struct C)
+               \DWATdatamemberlocation : 12
+               \DWATaccessibility : \DWACCESSprivate
 \end{alltt}
 \end{dwflisting}
 \caption{Type signature computation \#2: DWARF representation}
@@ -987,44 +987,44 @@ L1:
 \figurepart{2}{2}
 \begin{dwflisting}
 \begin{alltt}
-      \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-           \livelink{chap:DWATexternal}{DW\_AT\_external} : 1
-           \livelink{chap:DWATname}{DW\_AT\_name} : "A"
-           \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-           \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 12
-           \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} : 1
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-           \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L3
-           \livelink{chap:DWATartificial}{DW\_AT\_artificial} : 1
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-           \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
-       \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-           \livelink{chap:DWATexternal}{DW\_AT\_external} : 1
-           \livelink{chap:DWATname}{DW\_AT\_name} : "v"
-           \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
-           \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 13
-           \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
-           \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} : 1
-         \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-           \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L3
-           \livelink{chap:DWATartificial}{DW\_AT\_artificial} : 1
+      \DWTAGsubprogram
+           \DWATexternal : 1
+           \DWATname : "A"
+           \DWATdeclfile : 1
+           \DWATdeclline : 12
+           \DWATdeclaration : 1
+        \DWTAGformalparameter
+           \DWATtype : reference to L3
+           \DWATartificial : 1
+        \DWTAGformalparameter
+           \DWATtype : reference to L2
+       \DWTAGsubprogram
+           \DWATexternal : 1
+           \DWATname : "v"
+           \DWATdeclfile : 1
+           \DWATdeclline : 13
+           \DWATtype : reference to L2
+           \DWATdeclaration : 1
+         \DWTAGformalparameter
+           \DWATtype : reference to L3
+           \DWATartificial : 1
 L2:
-    \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-         \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 4
-         \livelink{chap:DWATencoding}{DW\_AT\_encoding} : \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
-         \livelink{chap:DWATname}{DW\_AT\_name} : "int"
+    \DWTAGbasetype
+         \DWATbytesize : 4
+         \DWATencoding : \DWATEsigned
+         \DWATname : "int"
 L3:
-    \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
-         \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L1
+    \DWTAGpointertype
+         \DWATtype : reference to L1
 L4:
-    \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
-         \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L5
-    \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-         \livelink{chap:DWATname}{DW\_AT\_name} : "N"
+    \DWTAGpointertype
+         \DWATtype : reference to L5
+    \DWTAGnamespace
+         \DWATname : "N"
 L5:
-       \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-           \livelink{chap:DWATname}{DW\_AT\_name} : "B"
-           \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} : 1
+       \DWTAGstructuretype
+           \DWATname : "B"
+           \DWATdeclaration : 1
 \end{alltt}
 \end{dwflisting}
 \begin{center}
@@ -1049,7 +1049,7 @@ to an incomplete type \texttt{N::B}, which is also included here as
 a declaration, since the complete type is unknown and its
 signature is therefore unavailable. There is also a reference
 to \texttt{N::C}, using 
-\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8} to 
+\DWFORMrefsigeight{} to 
 refer to the type signature
 \addtoindexx{type signature}
 for that type.
@@ -1064,48 +1064,48 @@ Figure \refersec{fig:typesignatureexample2flattenedbytestream}.
 \begin{figure}
 \figurepart{1}{3}
 \begin{dwflisting}
-% DWARF4 had a \livelink{chap:DWATnamespace}{DW\_AT\_namespace} below, 
-% but this error is fixed here to be \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}.
+% DWARF4 had a \DWATnamespace{} below, 
+% but this error is fixed here to be \DWTAGnamespace.
 \begin{alltt}
-// Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N"
+// Step 2: 'C' \DWTAGnamespace "N"
 0x43 0x39 0x4e 0x00
-// Step 3: 'D' \livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
+// Step 3: 'D' \DWTAGclasstype
 0x44 0x02
-// Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "A"
+// Step 4: 'A' \DWATname \DWFORMstring "A"
 0x41 0x03 0x08 0x41 0x00
-// Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 20
+// Step 4: 'A' \DWATbytesize \DWFORMsdata 20
 0x41 0x0b 0x0d 0x14
 // Step 7: First child ("v\_")
-    // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+    // Step 3: 'D' \DWTAGmember
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "v\_"
+    // Step 4: 'A' \DWATname \DWFORMstring "v\_"
     0x41 0x03 0x08 0x76 0x5f 0x00
-    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+    // Step 4: 'A' \DWATaccessibility \DWFORMsdata \DWACCESSprivate
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 0
+    // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 0
     0x41 0x38 0x0d 0x00
-    // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
+    // Step 6: 'T' \DWATtype (type \#2)
     0x54 0x49
-        // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+        // Step 3: 'D' \DWTAGbasetype
         0x44 0x24
-        // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "int"
+        // Step 4: 'A' \DWATname \DWFORMstring "int"
         0x41 0x03 0x08 0x69 0x6e 0x74 0x00
-        // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
+        // Step 4: 'A' \DWATbytesize \DWFORMsdata 4
         0x41 0x0b 0x0d 0x04
-        // Step 4: 'A' \livelink{chap:DWATencoding}{DW\_AT\_encoding} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
+        // Step 4: 'A' \DWATencoding \DWFORMsdata \DWATEsigned
         0x41 0x3e 0x0d 0x05
-        // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type} "int"
+        // Step 7: End of \DWTAGbasetype "int"
         0x00
-    // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "v\_"
+    // Step 7: End of \DWTAGmember "v\_"
     0x00
 // Step 7: Second child ("next")
-    // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+    // Step 3: 'D' \DWTAGmember
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "next"
+    // Step 4: 'A' \DWATname \DWFORMstring "next"
     0x41 0x03 0x08 0x6e 0x65 0x78 0x74 0x00
-    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+    // Step 4: 'A' \DWATaccessibility \DWFORMsdata \DWACCESSprivate
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
+    // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 4
     0x41 0x38 0x0d 0x04
 \end{alltt}
 \end{dwflisting}
@@ -1117,49 +1117,49 @@ Figure \refersec{fig:typesignatureexample2flattenedbytestream}.
 \figurepart{2}{3}
 \begin{dwflisting}
 \begin{alltt}    
-    // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#3)
+    // Step 6: 'T' \DWATtype (type \#3)
     0x54 0x49
-        // Step 3: 'D' \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+        // Step 3: 'D' \DWTAGpointertype
         0x44 0x0f
-        // Step 5: 'N' \livelink{chap:DWATtype}{DW\_AT\_type}
+        // Step 5: 'N' \DWATtype
         0x4e 0x49
-        // Step 5: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N" 'E'
+        // Step 5: 'C' \DWTAGnamespace "N" 'E'
         0x43 0x39 0x4e 0x00 0x45
         // Step 5: "A"
         0x41 0x00
-        // Step 7: End of \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+        // Step 7: End of \DWTAGpointertype
         0x00
-    // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "next"
+    // Step 7: End of \DWTAGmember "next"
     0x00
 // Step 7: Third child ("bp")
-    // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+    // Step 3: 'D' \DWTAGmember
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "bp"
+    // Step 4: 'A' \DWATname \DWFORMstring "bp"
     0x41 0x03 0x08 0x62 0x70 0x00
-    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+    // Step 4: 'A' \DWATaccessibility \DWFORMsdata \DWACCESSprivate
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 8
+    // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 8
     0x41 0x38 0x0d 0x08
-    // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#4)
+    // Step 6: 'T' \DWATtype (type \#4)
     0x54 0x49
-        // Step 3: 'D' \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+        // Step 3: 'D' \DWTAGpointertype
 0x44 0x0f
-        // Step 5: 'N' \livelink{chap:DWATtype}{DW\_AT\_type}
+        // Step 5: 'N' \DWATtype
         0x4e 0x49
-        // Step 5: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N" 'E'
+        // Step 5: 'C' \DWTAGnamespace "N" 'E'
         0x43 0x39 0x4e 0x00 0x45
         // Step 5: "B"
         0x42 0x00
-        // Step 7: End of \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+        // Step 7: End of \DWTAGpointertype
         0x00
-    // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "next"
+    // Step 7: End of \DWTAGmember "next"
     0x00
 // Step 7: Fourth child ("c")
-    // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+    // Step 3: 'D' \DWTAGmember
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "c"
+    // Step 4: 'A' \DWATname \DWFORMstring "c"
     0x41 0x03 0x08 0x63 0x00
-    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+    // Step 4: 'A' \DWATaccessibility \DWFORMsdata \DWACCESSprivate
     0x41 0x32 0x0d 0x03
 \end{alltt}
 \end{dwflisting}
@@ -1173,51 +1173,51 @@ Figure~\ref{fig:typesignatureexample2flattenedbytestream}: Type signature exampl
 \figurepart{3}{3}
 \begin{dwflisting}
 \begin{alltt}
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 12
+    // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 12
     0x41 0x38 0x0d 0x0c
-    // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#5)
+    // Step 6: 'T' \DWATtype (type \#5)
     0x54 0x49
-        // Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N"
+        // Step 2: 'C' \DWTAGnamespace "N"
         0x43 0x39 0x4e 0x00
-        // Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+        // Step 3: 'D' \DWTAGstructuretype
         0x44 0x13
-        // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "C"
+        // Step 4: 'A' \DWATname \DWFORMstring "C"
         0x41 0x03 0x08 0x43 0x00
-        // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 8
+        // Step 4: 'A' \DWATbytesize \DWFORMsdata 8
         0x41 0x0b 0x0d 0x08
         // Step 7: First child ("x")
-            // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+            // Step 3: 'D' \DWTAGmember
             0x44 0x0d
-            // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "x"
+            // Step 4: 'A' \DWATname \DWFORMstring "x"
             0x41 0x03 0x08 0x78 0x00
-            // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 0
+            // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 0
             0x41 0x38 0x0d 0x00
-            // Step 6: 'R' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
+            // Step 6: 'R' \DWATtype (type \#2)
             0x52 0x49 0x02
-            // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "x"
+            // Step 7: End of \DWTAGmember "x"
             0x00
         // Step 7: Second child ("y")
-            // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+            // Step 3: 'D' \DWTAGmember
             0x44 0x0d
-            // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "y"
+            // Step 4: 'A' \DWATname \DWFORMstring "y"
             0x41 0x03 0x08 0x79 0x00
-            // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
+            // Step 4: 'A' \DWATdatamemberlocation \DWFORMsdata 4
             0x41 0x38 0x0d 0x04
-            // Step 6: 'R' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
+            // Step 6: 'R' \DWATtype (type \#2)
             0x52 0x49 0x02
-            // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "y"
+            // Step 7: End of \DWTAGmember "y"
             0x00
-        // Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} "C"
+        // Step 7: End of \DWTAGstructuretype "C"
         0x00
-    // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "c"
+    // Step 7: End of \DWTAGmember "c"
     0x00
 // Step 7: Fifth child ("A")
-    // Step 3: 'S' \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} "A"
+    // Step 3: 'S' \DWTAGsubprogram "A"
     0x53 0x2e 0x41 0x00
 // Step 7: Sixth child ("v")
-    // Step 3: 'S' \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} "v"
+    // Step 3: 'S' \DWTAGsubprogram "v"
     0x53 0x2e 0x76 0x00
-// Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} "A"
+// Step 7: End of \DWTAGstructuretype "A"
 0x00
 \end{alltt}
 \end{dwflisting}
@@ -1240,14 +1240,14 @@ Figure \refersec{fig:typesignatureexampleusage}.
 \begin{figure}
 \begin{dwflisting}
 \begin{alltt}
-  \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+  \DWTAGcompileunit
   ...
-  \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+  \DWTAGsubprogram
     ...
-    \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-      \livelink{chap:DWATname}{DW\_AT\_name} : "a"
-      \livelink{chap:DWATtype}{DW\_AT\_type} : (signature) 0xd6d160f5 5589f6e9
-      \livelink{chap:DWATlocation}{DW\_AT\_location} : ...
+    \DWTAGvariable
+      \DWATname : "a"
+      \DWATtype : (signature) 0xd6d160f5 5589f6e9
+      \DWATlocation : ...
     ...
 \end{alltt}
 \end{dwflisting}
@@ -1295,17 +1295,17 @@ tag-code
 at-code
     : <ULEB128>
 form-encoded-value
-    : \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} value \addtoindexx{constant class}
-    : \livelink{chap:DWFORMflag}{DW\_FORM\_flag} value \addtoindexx{flag class}
-    : \livelink{chap:DWFORMstring}{DW\_FORM\_string} string \addtoindexx{string class}
-    : \livelink{chap:DWFORMblock}{DW\_FORM\_block} \nolink{block} \addtoindexx{block class}
-\livelink{chap:DWFORMstring}{DW\_FORM\_string} \addtoindexx{string class}
+    : \DWFORMsdata value \addtoindexx{constant class}
+    : \DWFORMflag value \addtoindexx{flag class}
+    : \DWFORMstring string \addtoindexx{string class}
+    : \DWFORMblock \nolink{block} \addtoindexx{block class}
+\DWFORMstring \addtoindexx{string class}
     : 'x08'
-\livelink{chap:DWFORMblock}{DW\_FORM\_block}  \addtoindexx{block class}
+\DWFORMblock  \addtoindexx{block class}
     : 'x09'
-\livelink{chap:DWFORMflag}{DW\_FORM\_flag} \addtoindexx{flag class}
+\DWFORMflag \addtoindexx{flag class}
     : 'x0c'
-\livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \addtoindexx{constant class}
+\DWFORMsdata \addtoindexx{constant class}
     : 'x0d'
 value
     : <SLEB128>
@@ -1396,9 +1396,9 @@ There will also be a compilation unit that has the file\dash level
 declarations and definitions. Other per\dash function compilation
 unit DWARF information (\dotdebuginfo{}) points to this common
 file\dash level compilation unit using 
-\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}.
+\DWTAGimportedunit.
 
-Section groups can use \livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} and internal labels
+Section groups can use \DWFORMrefaddr{} and internal labels
 (section\dash relative relocations) to refer to the main object
 file sections, as the 
 \addtoindexx{section group}
index 4269959..1afd285 100644 (file)
@@ -15,18 +15,18 @@ Program variables,
 \addtoindexx{formal parameter entry}
 formal parameters and constants are
 represented by debugging information entries with the tags
-\livetarg{chap:DWTAGvariable}{DW\_TAG\_variable}\addtoindexx{variable entry}, 
-\livetarg{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}\addtoindexx{formal parameter entry} and 
-\livetarg{chap:DWTAGconstant}{DW\_TAG\_constant}\addtoindexx{constant (data) entry},
+\DWTAGvariableTARG\addtoindexx{variable entry}, 
+\DWTAGformalparameterTARG\addtoindexx{formal parameter entry} and 
+\DWTAGconstantTARG\addtoindexx{constant (data) entry},
 respectively.
 
-\textit{The tag \livelink{chap:DWTAGconstant}{DW\_TAG\_constant} is used for languages that
+\textit{The tag \DWTAGconstant{} is used for languages that
 have true named constants.}
 
 The debugging information entry for a program variable,
 formal parameter or constant may have the following attributes:
 \begin{enumerate}[1. ]
-\item A \livelink{chap:DWATname}{DW\_AT\_name} attribute,
+\item A \DWATname{} attribute,
 \addtoindexx{name attribute}
 whose value is a null-terminated
 string, containing the data object name as it appears in the
@@ -37,7 +37,7 @@ If a variable entry describes an
 the name attribute is omitted or consists of a single
 zero byte.
 
-\item A \livelink{chap:DWATexternal}{DW\_AT\_external} attribute, 
+\item A \DWATexternal{} attribute, 
 \hypertarget{chap:DWATexternalexternalvariable}
 which 
 \addtoindexx{external attribute}
@@ -51,13 +51,13 @@ external. Both file static and local variables in C and C++
 are represented by non-external variable entries.
 }
 
-\item A \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} attribute, 
+\item A \DWATdeclaration{} attribute, 
 \addtoindexx{declaration attribute}
 which is a \livelink{chap:classflag}{flag} that
 indicates whether this entry represents a non-defining
 declaration of an object.
 
-\item A \livelink{chap:DWATlocation}{DW\_AT\_location} attribute,
+\item A \DWATlocation{} attribute,
 \addtoindexx{location attribute}
 whose value describes the location of a variable or parameter at run-time.
 
@@ -65,7 +65,7 @@ If no location attribute is present in a variable
 entry representing the definition of a variable (that is,
 \addtoindexx{declaration attribute}
 with no 
-\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} attribute),
+\DWATdeclaration{} attribute),
 or if the location attribute is present but has
 an empty location description (as described in Section \refersec{chap:locationdescriptions}),
 \addtoindexx{unallocated variable}
@@ -80,30 +80,30 @@ defining declaration applies.
 The location of a variable may be further specified with 
 \addtoindexx{segment attribute!and data segment}
 a 
-\livelink{chap:DWATsegment}{DW\_AT\_segment} attribute, if
+\DWATsegment{} attribute, if
 appropriate.
 
-\item A \livelink{chap:DWATtype}{DW\_AT\_type} attribute describing the type of the variable,
+\item A \DWATtype{} attribute describing the type of the variable,
 constant or formal parameter.
 
 \item If the variable entry represents the defining declaration
 for a C++ static data member of a structure, class or union,
-the entry has a \livelink{chap:DWATspecification}{DW\_AT\_specification} attribute, whose value is a
+the entry has a \DWATspecification{} attribute, whose value is a
 \livelink{chap:classreference}{reference} to the debugging information entry representing the
 declaration of this data member. The referenced entry has the
-tag \livelink{chap:DWTAGmember}{DW\_TAG\_member} and will be a child of some class, structure
+tag \DWTAGmember{} and will be a child of some class, structure
 or union type entry.
 
 If the variable entry represents a
-non-defining declaration, \livelink{chap:DWATspecification}{DW\_AT\_specification} may be used
+non-defining declaration, \DWATspecification{} may be used
 to reference the defining declaration of the variable. If
-no \livelink{chap:DWATspecification}{DW\_AT\_specification} attribute is present, the defining
+no \DWATspecification{} attribute is present, the defining
 declaration may be found as a global definition either in the
 current compilation unit or in another compilation unit with
-the \livelink{chap:DWATexternal}{DW\_AT\_external} attribute.  
+the \DWATexternal{} attribute.  
 
 Variable entries containing
-the \livelink{chap:DWATspecification}{DW\_AT\_specification} attribute do not need to duplicate
+the \DWATspecification{} attribute do not need to duplicate
 information provided by the declaration entry referenced by
 the specification attribute. In particular, such variable
 entries do not need to contain attributes for the name or
@@ -113,7 +113,7 @@ type of the data member whose definition they
 \hypertarget{chap:DWATvariableparameternonconstantparameterflag}
 represent.
 
-\item A \livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}
+\item A \DWATvariableparameter{}
 attribute\addtoindexx{variable parameter attribute}, 
 which is a \livelink{chap:classflag}{flag},
 if a formal parameter entry represents a parameter whose
@@ -121,14 +121,14 @@ value in the calling function may be modified by the callee.
 The absence of this attribute implies that the parameter\textquoteright s
 value in the calling function cannot be modified by the callee.
 
-\item A \livelink{chap:DWATisoptional}{DW\_AT\_is\_optional} attribute, 
+\item A \DWATisoptional{} attribute, 
 \hypertarget{chap:DWATisoptionaloptionalparameter}
 which 
 \addtoindexx{is optional attribute}
 is a \livelink{chap:classflag}{flag}, if a
 parameter entry represents an \addtoindex{optional parameter}.
 
-\item A \livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value} attribute 
+\item A \DWATdefaultvalue{} attribute 
 \addtoindexx{default value attribute}
 for 
 \addtoindexx{formal parameter entry!with default value}
@@ -147,7 +147,7 @@ as a default value of the type of the formal parameter.
 \textit{For a constant form there is no way to 
 express the absence of a default value.}
 
-\item A \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} attribute 
+\item A \DWATconstvalue{} attribute 
 for 
 \hypertarget{chap:DWATconstvalueconstantobject}
 an entry describing a
@@ -168,7 +168,7 @@ formal parameter of an inlined subprogram that corresponds
 to a constant actual parameter of a call that is inlined.
 }
 
-\item A \livelink{chap:DWATstartscope}{DW\_AT\_start\_scope
+\item A \DWATstartscope{
 attribute if the scope of 
 \addtoindexx{start scope attribute}
 an
@@ -230,7 +230,7 @@ the containing scope is contiguous. Conversely, the scope of
 an object may not require its own \addtoindex{range list} even when the
 containing scope is non\dash contiguous.}
 
-\item A \livelink{chap:DWATendianity}{DW\_AT\_endianity} attribute, 
+\item A \DWATendianity{} attribute, 
 whose value 
 \hypertarget{chap:DWATendianityendianityofdata}
 is a constant
@@ -255,11 +255,11 @@ Table \ref{tab:endianityattributevalues}.
 \begin{tabular}{l|p{9cm}}
 \hline
 Name&Meaning\\ \hline
-\livetarg{chap:DWENDdefault}{DW\_END\_default} &  Default endian encoding
+\DWENDdefaultTARG{} &  Default endian encoding
   (equivalent to the \mbox{absence} of a 
-  \livelink{chap:DWATendianity}{DW\_AT\_endianity} attribute) \\
-\livetarg{chap:DWENDbig}{DW\_END\_big} & Big\dash endian encoding \\
-\livetarg{chap:DWENDlittle}{DW\_END\_little}& Little-endian encoding \\
+  \DWATendianity{} attribute) \\
+\DWENDbigTARG{} & Big\dash endian encoding \\
+\DWENDlittleTARG& Little-endian encoding \\
 \hline
 \end{tabular}
 \end{table}
@@ -271,7 +271,7 @@ exact definition of these formats may differ in subtle ways
 for different architectures.
 
 
-\item A \livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} attribute, 
+\item A \DWATconstexpr{} attribute, 
 which 
 \hypertarget{chap:DWATconstexprcompiletimeconstantobject}
 is a \livelink{chap:classflag}{flag}, if a
@@ -281,11 +281,11 @@ variable can be evaluated as a compile\dash time constant.
 
 \textit{In C++,
 a variable declared with \texttt{constexpr} is implicitly \texttt{const}. Such a
-variable has a \livelink{chap:DWATtype}{DW\_AT\_type} attribute whose value is a 
+variable has a \DWATtype{} attribute whose value is a 
 \livelink{chap:classreference}{reference}
 to a debugging information entry describing a const qualified type.}
 
-\item A \livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} attribute for a 
+\item A \DWATlinkagename{} attribute for a 
 variable or constant entry as described in 
 Section \refersec{chap:linkagenames}.
 
@@ -298,19 +298,19 @@ may
 \addtoindexx{Fortran!common block}
 be described by a debugging
 information entry with the 
-tag \livetarg{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}
+tag \DWTAGcommonblockTARG
 
 The common \nolink{block} 
-entry has a \livelink{chap:DWATname}{DW\_AT\_name} attribute 
+entry has a \DWATname{} attribute 
 \addtoindexx{name attribute}
 whose value
 is a null-terminated string containing the 
 \livetargi{chap:commonblockreferenceattribute}{common}{common block reference attribute} \nolink{block}
 name as it appears in the source program. It may also have a
-\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} attribute as described in 
+\DWATlinkagename{} attribute as described in 
 Section \refersec{chap:linkagenames}. 
 It
-also has a \livelink{chap:DWATlocation}{DW\_AT\_location} attribute
+also has a \DWATlocation{} attribute
 \addtoindexx{location attribute}
 whose value describes the
 location of the beginning of the common \nolink{block}. 
@@ -328,10 +328,10 @@ as a replacement for the list of names in various contexts.}
 
 A namelist is represented by a debugging information entry
 with the 
-tag \livetarg{chap:DWTAGnamelist}{DW\_TAG\_namelist}
+tag \DWTAGnamelistTARG
 \addtoindexx{namelist entry}
 If the namelist itself has a
-name, the namelist entry has a \livelink{chap:DWATname}{DW\_AT\_name} attribute,
+name, the namelist entry has a \DWATname{} attribute,
 \addtoindexx{name attribute}
 whose
 value is a null-terminated string containing the namelist\textquoteright s
@@ -341,7 +341,7 @@ Each
 \hypertarget{chap:DWATnamelistitemnamelistitem}
 name that is part of the namelist is represented
 by a debugging information entry with the tag
-\livetarg{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item}
+\DWTAGnamelistitemTARG
 Each such entry is a child of the
 namelist entry, and all of the 
 namelist item entries for a
@@ -350,7 +350,7 @@ given namelist are ordered as were the list of names they
 correspond to in the source program.
 
 Each namelist item entry contains a 
-\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item} attribute
+\DWATnamelistitem{} attribute
 \addtoindexx{namelist item attribute}
 whose 
 \addtoindexx{namelist item entry}
index 81dc83e..1699277 100644 (file)
@@ -20,13 +20,22 @@ base type encodings, location operations, language names,
 calling conventions and call frame instructions.
 
 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
 \hypertarget{chap:DWXXXlohiuser}{}
+value range for vendor specific extensions consist of the
+appropriate prefix 
+(\DWTAGlouserMARK\DWTAGhiuserMARK{}    DW\_TAG, 
+\DWATlouserMARK\DWAThiuserMARK{}       DW\_AT,
+\DWENDlouserMARK\DWENDhiuserMARK{}     DW\_END, 
+\DWATElouserMARK\DWATEhiuserMARK{}     DW\_ATE, 
+\DWOPlouserMARK\DWOPhiuserMARK{}       DW\_OP, 
+\DWLANGlouserMARK\DWLANGhiuserMARK{}DW\_LANG, 
+\DWLNElouserMARK\DWLNEhiuserMARK{}     DW\_LNE, 
+\DWCClouserMARK\DWCChiuserMARK{}       DW\_CC or 
+\DWCFAlouserMARK\DWCFAhiuserMARK{}     DW\_CFA 
+respectively) followed by
 \_lo\_user or \_hi\_user. 
 \textit{For example, for entry tags, the special
-labels are DW\_TAG\_lo\_user and DW\_TAG\_hi\_user.}
+labels are \DWTAGlouserNAME{} and \DWTAGhiuserNAME.}
 Values in the  range between \textit{prefix}\_lo\_user 
 and \textit{prefix}\_hi\_user inclusive,
 are reserved for vendor specific extensions. Vendors may
@@ -39,8 +48,8 @@ between the number of standard line number opcodes and
 the first special line number opcode. However, since the
 number of standard opcodes varies with the DWARF version,
 the range for extensions is also version dependent. Thus,
-\livetarg{chap:DWLNSlouser}{DW\_LNS\_lo\_user} and 
-\livetarg{chap:DWLNShiuser}{DW\_LNS\_hi\_user} symbols are not defined.
+\DWLNSlouserTARG{} and 
+\DWLNShiuserTARG{} symbols are not defined.
 }
 
 Vendor defined tags, attributes, base type encodings, location
@@ -228,11 +237,11 @@ format, the value is a 64\dash bit unsigned integer.
 \begin{center}
 \begin{tabular}{ll}
 Form & Role  \\ \hline
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}& offset in \dotdebuginfo{} \\
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}& offset in a section other than \\
+\DWFORMrefaddr& offset in \dotdebuginfo{} \\
+\DWFORMsecoffset& offset in a section other than \\
                                                                                        &\dotdebuginfo{} or \dotdebugstr{} \\
-\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}&offset in \dotdebugstr{} \\
-\livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}&offset in \dotdebuginfo{} \\
+\DWFORMstrp&offset in \dotdebugstr{} \\
+\DWOPcallref&offset in \dotdebuginfo{} \\
 \end{tabular}
 \end{center}
 
@@ -286,8 +295,8 @@ the object file. Each such contribution consists of a
 compilation unit header 
 (see Section \refersec{datarep:compilationunitheader}) 
 followed by a
-single \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or 
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging
+single \DWTAGcompileunit{} or 
+\DWTAGpartialunit{} debugging
 information entry, together with its children.
 
 For each type defined in a compilation unit, a contribution may
@@ -296,7 +305,7 @@ section of the object file. Each
 such contribution consists of a 
 \addtoindex{type unit} header 
 (see Section \refersec{datarep:typeunitheader}) 
-followed by a \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit} entry, together with
+followed by a \DWTAGtypeunit{} entry, together with
 its children.
 
 Each debugging information entry begins with a code that
@@ -427,7 +436,7 @@ of the type described in this type
 unit.  
 
 \textit{An attribute that refers (using 
-\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8}) to
+\DWFORMrefsigeight{}) to
 the primary type contained in this 
 \addtoindex{type unit} uses this value.}
 
@@ -503,82 +512,82 @@ Table \refersec{tab:tagencodings}.
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type} &0x01 \\
-\livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}&0x02 \\
-\livelink{chap:DWTAGentrypoint}{DW\_TAG\_entry\_point}&0x03 \\
-\livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}&0x04 \\
-\livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}&0x05 \\
-\livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}&0x08 \\
-\livelink{chap:DWTAGlabel}{DW\_TAG\_label}&0x0a \\
-\livelink{chap:DWTAGlexicalblock}{DW\_TAG\_lexical\_block}&0x0b \\
-\livelink{chap:DWTAGmember}{DW\_TAG\_member}&0x0d \\
-\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}&0x0f \\
-\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}&0x10 \\
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}&0x11 \\
-\livelink{chap:DWTAGstringtype}{DW\_TAG\_string\_type}&0x12 \\
-\livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}&0x13 \\
-\livelink{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type}&0x15 \\
-\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef}&0x16 \\
-\livelink{chap:DWTAGuniontype}{DW\_TAG\_union\_type}&0x17 \\
-\livelink{chap:DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters}&0x18  \\
-\livelink{chap:DWTAGvariant}{DW\_TAG\_variant}&0x19  \\
-\livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}&0x1a  \\
-\livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion}&0x1b  \\
-\livelink{chap:DWTAGinheritance}{DW\_TAG\_inheritance}&0x1c  \\
-\livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}&0x1d  \\
-\livelink{chap:DWTAGmodule}{DW\_TAG\_module}&0x1e  \\
-\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}&0x1f  \\
-\livelink{chap:DWTAGsettype}{DW\_TAG\_set\_type}&0x20  \\
-\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}&0x21  \\
-\livelink{chap:DWTAGwithstmt}{DW\_TAG\_with\_stmt}&0x22  \\
-\livelink{chap:DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration}&0x23  \\
-\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}&0x24  \\
-\livelink{chap:DWTAGcatchblock}{DW\_TAG\_catch\_block}&0x25  \\
-\livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}&0x26  \\
-\livelink{chap:DWTAGconstant}{DW\_TAG\_constant}&0x27  \\
-\livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}&0x28  \\
-\livelink{chap:DWTAGfiletype}{DW\_TAG\_file\_type}&0x29  \\
-\livelink{chap:DWTAGfriend}{DW\_TAG\_friend}&0x2a  \\
-\livelink{chap:DWTAGnamelist}{DW\_TAG\_namelist}&0x2b    \\
-\livelink{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item}&0x2c    \\
-\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type}&0x2d    \\
-\livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}&0x2e    \\
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}&0x2f    \\
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter}&0x30    \\
-\livelink{chap:DWTAGthrowntype}{DW\_TAG\_thrown\_type}&0x31    \\
-\livelink{chap:DWTAGtryblock}{DW\_TAG\_try\_block}&0x32    \\
-\livelink{chap:DWTAGvariantpart}{DW\_TAG\_variant\_part}&0x33    \\
-\livelink{chap:DWTAGvariable}{DW\_TAG\_variable}&0x34    \\
-\livelink{chap:DWTAGvolatiletype}{DW\_TAG\_volatile\_type}&0x35    \\
-\livelink{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure}&0x36     \\
-\livelink{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type}&0x37      \\
-\livelink{chap:DWTAGinterfacetype}{DW\_TAG\_interface\_type}&0x38      \\
-\livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}&0x39      \\
-\livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module}&0x3a      \\
-\livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}&0x3b      \\
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit}&0x3c      \\
-\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}&0x3d      \\
-\livelink{chap:DWTAGcondition}{DW\_TAG\_condition}&\xiiif      \\
-\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type}&0x40      \\
-\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit} &0x41      \\
-\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type} &0x42      \\
-\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias} &0x43      \\
+\DWTAGarraytype{} &0x01 \\
+\DWTAGclasstype&0x02 \\
+\DWTAGentrypoint&0x03 \\
+\DWTAGenumerationtype&0x04 \\
+\DWTAGformalparameter&0x05 \\
+\DWTAGimporteddeclaration&0x08 \\
+\DWTAGlabel&0x0a \\
+\DWTAGlexicalblock&0x0b \\
+\DWTAGmember&0x0d \\
+\DWTAGpointertype&0x0f \\
+\DWTAGreferencetype&0x10 \\
+\DWTAGcompileunit&0x11 \\
+\DWTAGstringtype&0x12 \\
+\DWTAGstructuretype&0x13 \\
+\DWTAGsubroutinetype&0x15 \\
+\DWTAGtypedef&0x16 \\
+\DWTAGuniontype&0x17 \\
+\DWTAGunspecifiedparameters&0x18  \\
+\DWTAGvariant&0x19  \\
+\DWTAGcommonblock&0x1a  \\
+\DWTAGcommoninclusion&0x1b  \\
+\DWTAGinheritance&0x1c  \\
+\DWTAGinlinedsubroutine&0x1d  \\
+\DWTAGmodule&0x1e  \\
+\DWTAGptrtomembertype&0x1f  \\
+\DWTAGsettype&0x20  \\
+\DWTAGsubrangetype&0x21  \\
+\DWTAGwithstmt&0x22  \\
+\DWTAGaccessdeclaration&0x23  \\
+\DWTAGbasetype&0x24  \\
+\DWTAGcatchblock&0x25  \\
+\DWTAGconsttype&0x26  \\
+\DWTAGconstant&0x27  \\
+\DWTAGenumerator&0x28  \\
+\DWTAGfiletype&0x29  \\
+\DWTAGfriend&0x2a  \\
+\DWTAGnamelist&0x2b    \\
+\DWTAGnamelistitem&0x2c    \\
+\DWTAGpackedtype&0x2d    \\
+\DWTAGsubprogram&0x2e    \\
+\DWTAGtemplatetypeparameter&0x2f    \\
+\DWTAGtemplatevalueparameter&0x30    \\
+\DWTAGthrowntype&0x31    \\
+\DWTAGtryblock&0x32    \\
+\DWTAGvariantpart&0x33    \\
+\DWTAGvariable&0x34    \\
+\DWTAGvolatiletype&0x35    \\
+\DWTAGdwarfprocedure&0x36     \\
+\DWTAGrestricttype&0x37      \\
+\DWTAGinterfacetype&0x38      \\
+\DWTAGnamespace&0x39      \\
+\DWTAGimportedmodule&0x3a      \\
+\DWTAGunspecifiedtype&0x3b      \\
+\DWTAGpartialunit&0x3c      \\
+\DWTAGimportedunit&0x3d      \\
+\DWTAGcondition&\xiiif      \\
+\DWTAGsharedtype&0x40      \\
+\DWTAGtypeunit{} &0x41      \\
+\DWTAGrvaluereferencetype{} &0x42      \\
+\DWTAGtemplatealias{} &0x43      \\
 \DWTAGcoarraytype &0x44 \\
 \DWTAGgenericsubrange &0x45 \\
-\livelink{chap:DWXXXlohiuser}{DW\_TAG\_lo\_user}&0x4080      \\
-\livelink{chap:DWXXXlohiuser}{DW\_TAG\_hi\_user}&\xffff      \\
+\DWTAGlouser&0x4080      \\
+\DWTAGhiuser&\xffff      \\
 \end{longtable}
 \end{centering}
 
 Following the tag encoding is a 1\dash byte value that determines
 whether a debugging information entry using this abbreviation
 has child entries or not. If the value is 
-\livetarg{chap:DWCHILDRENyes}{DW\_CHILDREN\_yes},
+\DWCHILDRENyesTARG,
 the next physically succeeding entry of any debugging
 information entry using this abbreviation is the first
 child of that entry. If the 1\dash byte value following the
 abbreviation\textquoteright s tag encoding is 
-\livetarg{chap:DWCHILDRENno}{DW\_CHILDREN\_no}, the next
+\DWCHILDRENnoTARG, the next
 physically succeeding entry of any debugging information entry
 using this abbreviation is a sibling of that entry. (Either
 the first child or sibling entries may be null entries). The
@@ -603,8 +612,8 @@ each chain of sibling entries is terminated by a null entry.)
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}&0x00 \\ 
-\livelink{chap:DWCHILDRENyes}{DW\_CHILDREN\_yes}&0x01 \\ \hline
+\DWCHILDRENno&0x00 \\ 
+\DWCHILDRENyes&0x01 \\ \hline
 \end{longtable}
 \end{centering}
 
@@ -618,7 +627,7 @@ form. The series of attribute specifications ends with an
 entry containing 0 for the name and 0 for the form.
 
 The attribute form 
-\livetarg{chap:DWFORMindirect}{DW\_FORM\_indirect} is a special case. For
+\DWFORMindirectTARG{} is a special case. For
 attributes with this form, the attribute value itself in the
 \dotdebuginfo{} or 
 \dotdebugtypes{}
@@ -650,7 +659,7 @@ class is a set of forms which have related representations
 and which are given a common interpretation according to the
 attribute in which the form is used.
 
-Form \livetarg{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset
+Form \DWFORMsecoffsetTARG{
 is a member of more 
 \addtoindexx{rangelistptr class}
 than 
@@ -667,8 +676,8 @@ of classes allowed by the applicable attribute in
 Table \refersec{tab:attributeencodings}
 determines the class of the form.
 
-\textit{In DWARF V3 the forms \livelink{chap:DWFORMdata4}{DW\_FORM\_data4} and 
-\livelink{chap:DWFORMdata8}{DW\_FORM\_data8} were
+\textit{In DWARF V3 the forms \DWFORMdatafour{} and 
+\DWFORMdataeight{} were
 \addtoindexx{lineptr class}
 members 
 \addtoindexx{rangelistptr class}
@@ -683,11 +692,11 @@ or one of the classes
 \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
+\DWFORMdatafour{} and 
+\DWFORMdataeight{} are members of class
 constant in all cases. 
 The new 
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset} replaces
+\DWFORMsecoffset{} replaces
 their usage for the other classes.}
 
 Each possible form belongs to one or more of the following classes:
@@ -697,7 +706,7 @@ Each possible form belongs to one or more of the following classes:
 \livetarg{datarep:classaddress}{}
 Represented as an object of appropriate size to hold an
 address on the target machine 
-(\livetarg{chap:DWFORMaddr}{DW\_FORM\_addr}). 
+(\DWFORMaddrTARG). 
 The size is
 encoded in the compilation unit header 
 (see Section \refersec{datarep:compilationunitheader}).
@@ -711,22 +720,22 @@ Blocks come in four forms:
 
 \begin{myindentpara}{1cm}
 A 1\dash byte length followed by 0 to 255 contiguous information
-bytes (\livetarg{chap:DWFORMblock1}{DW\_FORM\_block1}).
+bytes (\DWFORMblockoneTARG).
 \end{myindentpara}
 
 \begin{myindentpara}{1cm}
 A 2\dash byte length followed by 0 to 65,535 contiguous information
-bytes (\livetarg{chap:DWFORMblock2}{DW\_FORM\_block2}).
+bytes (\DWFORMblocktwoTARG).
 \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}).
+information bytes (\DWFORMblockfourTARG).
 \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}).
+specified by the length (\DWFORMblockTARG).
 \end{myindentpara}
 
 In all forms, the length is the number of information bytes
@@ -739,20 +748,20 @@ debugging information entries or data bytes.
 There are six forms of constants. There are fixed length
 constant data forms for one, two, four and eight byte values
 (respectively, 
-\livetarg{chap:DWFORMdata1}{DW\_FORM\_data1}
-\livetarg{chap:DWFORMdata2}{DW\_FORM\_data2}
-\livetarg{chap:DWFORMdata4}{DW\_FORM\_data4},
-and \livetarg{chap:DWFORMdata8}{DW\_FORM\_data8}). 
+\DWFORMdataoneTARG
+\DWFORMdatatwoTARG
+\DWFORMdatafourTARG,
+and \DWFORMdataeightTARG). 
 There are also variable length constant
 data forms encoded using LEB128 numbers (see below). Both
-signed (\livetarg{chap:DWFORMsdata}{DW\_FORM\_sdata}) and unsigned 
-(\livetarg{chap:DWFORMudata}{DW\_FORM\_udata}) variable
+signed (\DWFORMsdataTARG) and unsigned 
+(\DWFORMudataTARG) variable
 length constants are available
 
-The data in \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
-\livelink{chap:DWFORMdata2}{DW\_FORM\_data2}
-\livelink{chap:DWFORMdata4}{DW\_FORM\_data4} and
-\livelink{chap:DWFORMdata8}{DW\_FORM\_data8
+The data in \DWFORMdataone
+\DWFORMdatatwo
+\DWFORMdatafour{} and
+\DWFORMdataeight{
 can be anything. Depending on context, it may
 be a signed integer, an unsigned integer, a floating\dash point
 constant, or anything else. A consumer must use context to
@@ -760,22 +769,22 @@ know how to interpret the bits, which if they are target
 machine data (such as an integer or floating point constant)
 will be in target machine byte\dash order.
 
-\textit{If one of the \livetarg{chap:DWFORMdata}{DW\_FORM\_data}\textless n\textgreater 
+\textit{If one of the \DWFORMdataTARG\textless n\textgreater 
 forms is used to represent a
 signed or unsigned integer, it can be hard for a consumer
 to discover the context necessary to determine which
 interpretation is intended. Producers are therefore strongly
-encouraged to use \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} or 
-\livelink{chap:DWFORMudata}{DW\_FORM\_udata} for signed and
+encouraged to use \DWFORMsdata{} or 
+\DWFORMudata{} for signed and
 unsigned integers respectively, rather than 
-\livelink{chap:DWFORMdata}{DW\_FORM\_data}\textless n\textgreater.}
+\DWFORMdata\textless n\textgreater.}
 
 \needlines{4}
 \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}). 
+(\DWFORMexprlocTARG). 
 The information bytes contain a DWARF expression 
 (see Section \refersec{chap:dwarfexpressions}) 
 or location description 
@@ -785,8 +794,8 @@ or location description
 \livetarg{datarep:classflag}{}
 A flag \addtoindexx{flag class}
 is represented explicitly as a single byte of data
-(\livetarg{chap:DWFORMflag}{DW\_FORM\_flag}) or 
-implicitly (\livetarg{chap:DWFORMflagpresent}{DW\_FORM\_flag\_present}). 
+(\DWFORMflagTARG) or 
+implicitly (\DWFORMflagpresentTARG). 
 In the
 first case, if the \nolink{flag} has value zero, it indicates the
 absence of the attribute; if the \nolink{flag} has a non\dash zero value,
@@ -800,7 +809,7 @@ This is an offset into
 \addtoindexx{section offset!in class lineptr value}
 the 
 \dotdebugline{} section
-(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}).
+(\DWFORMsecoffset).
 It consists of an offset from the beginning of the 
 \dotdebugline{}
 section to the first byte of
@@ -818,7 +827,7 @@ in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
 This is an offset into the 
 \dotdebugloc{}
 section
-(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}). 
+(\DWFORMsecoffset). 
 It consists of an offset from the
 \addtoindexx{section offset!in class loclistptr value}
 beginning of the 
@@ -839,7 +848,7 @@ This is an
 \addtoindexx{section offset!in class macptr value}
 offset into the 
 \dotdebugmacinfo{} section
-(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}). 
+(\DWFORMsecoffset). 
 It consists of an offset from the
 beginning of the \dotdebugmacinfo{} 
 section to the first byte of
@@ -857,7 +866,7 @@ in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
 This is an 
 \addtoindexx{section offset!in class rangelistptr value}
 offset into the \dotdebugranges{} section
-(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}). 
+(\DWFORMsecoffset). 
 It consists of an
 offset from the beginning of the 
 \dotdebugranges{} section
@@ -895,13 +904,13 @@ offset from the first byte of the compilation
 header for the compilation unit containing the reference. There
 are five forms for this type of reference. There are fixed
 length forms for one, two, four and eight byte offsets
-(respectively, \livetarg{chap:DWFORMref1}{DW\_FORM\_ref1}
-\livetarg{chap:DWFORMref2}{DW\_FORM\_ref2}
-\livetarg{chap:DWFORMref4}{DW\_FORM\_ref4},
-and \livetarg{chap:DWFORMref8}{DW\_FORM\_ref8}). 
+(respectively, \DWFORMrefoneTARG
+\DWFORMreftwoTARG
+\DWFORMreffourTARG,
+and \DWFORMrefeightTARG). 
 There is also an unsigned variable
 length offset encoded form that uses unsigned LEB128 numbers
-(\livetarg{chap:DWFORMrefudata}{DW\_FORM\_ref\_udata}). 
+(\DWFORMrefudataTARG). 
 Because this type of reference is within
 the containing compilation unit no relocation of the value
 is required.
@@ -912,7 +921,7 @@ information entry within a
 it may refer to an entry in a different compilation unit
 from the unit containing the reference, and may refer to an
 entry in a different shared object.  This type of reference
-(\livetarg{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}
+(\DWFORMrefaddrTARG
 is an offset from the beginning of the
 \dotdebuginfo{} 
 section of the target executable or shared object;
@@ -928,7 +937,7 @@ unsigned value
 
 \textit{A debugging information entry that may be referenced by
 another compilation unit using 
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} must have a
+\DWFORMrefaddr{} must have a
 global symbolic name.}
 
 \textit{For a reference from one executable or shared object to
@@ -942,7 +951,7 @@ or when the reference is used.}
 The third type of reference can identify any debugging
 information type entry that has been placed in its own
 \addtoindex{type unit}. This type of 
-reference (\livetarg{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8}) is the
+reference (\DWFORMrefsigeight) is the
 \addtoindexx{type signature}
 64\dash bit type signature 
 (see Section \refersec{datarep:typesignaturecomputation}) 
@@ -966,19 +975,19 @@ one null byte.
 \addtoindexx{string class}
 A string may be represented immediately in the
 debugging information entry itself 
-(\livetarg{chap:DWFORMstring}{DW\_FORM\_string}), or may
+(\DWFORMstringTARG), or may
 be represented as an 
 \addtoindexx{section offset!in class string value}
 offset into a string table contained in
 the \dotdebugstr{} section of the object file 
-(\livetarg{chap:DWFORMstrp}{DW\_FORM\_strp}). In
+(\DWFORMstrpTARG). In
 the \thirtytwobitdwarfformat, the representation of a 
-\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}
+\DWFORMstrp{}
 value is a 4\dash byte unsigned offset; in the \sixtyfourbitdwarfformat,
 it is an 8\dash byte unsigned offset 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
-If the \livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}
+If the \DWATuseUTFeight{}
 \addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8} attribute is specified for the
 compilation unit entry, string values are encoded using the
 UTF\dash 8 (\addtoindex{Unicode} Transformation Format\dash 8) from the Universal
@@ -1027,199 +1036,199 @@ Table \refersec{tab:attributeformencodings}.
 \endfoot
   \hline \ddag\ \textit{New in DWARF Version 5}
 \endlastfoot
-\livelink{chap:DWATsibling}{DW\_AT\_sibling}&0x01&\livelink{chap:classreference}{reference} 
+\DWATsibling&0x01&\livelink{chap:classreference}{reference} 
         \addtoindexx{sibling attribute!encoding} \\
-\livelink{chap:DWATlocation}{DW\_AT\_location}&0x02&\livelink{chap:classexprloc}{exprloc}, 
+\DWATlocation&0x02&\livelink{chap:classexprloc}{exprloc}, 
         \livelink{chap:classloclistptr}{loclistptr}\addtoindexx{location attribute!encoding}   \\
-\livelink{chap:DWATname}{DW\_AT\_name}&0x03&\livelink{chap:classstring}{string} 
+\DWATname&0x03&\livelink{chap:classstring}{string} 
         \addtoindexx{name attribute!encoding} \\
-\livelink{chap:DWATordering}{DW\_AT\_ordering}&0x09&\livelink{chap:classconstant}{constant} 
+\DWATordering&0x09&\livelink{chap:classconstant}{constant} 
         \addtoindexx{ordering attribute!encoding}  \\
-\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}&0x0b&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, 
+\DWATbytesize&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}, 
+\DWATbitoffset&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}, 
+\DWATbitsize&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} 
+\DWATstmtlist&0x10&\livelink{chap:classlineptr}{lineptr} 
         \addtoindexx{statement list attribute!encoding} \\
-\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}&0x11&\livelink{chap:classaddress}{address} 
+\DWATlowpc&0x11&\livelink{chap:classaddress}{address} 
         \addtoindexx{low PC attribute!encoding}  \\
-\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}&0x12&\livelink{chap:classaddress}{address}, \livelink{chap:classconstant}{constant} 
+\DWAThighpc&0x12&\livelink{chap:classaddress}{address}, \livelink{chap:classconstant}{constant} 
         \addtoindexx{high PC attribute!encoding}  \\
-\livelink{chap:DWATlanguage}{DW\_AT\_language}&0x13&\livelink{chap:classconstant}{constant} 
+\DWATlanguage&0x13&\livelink{chap:classconstant}{constant} 
         \addtoindexx{language attribute!encoding}  \\
-\livelink{chap:DWATdiscr}{DW\_AT\_discr}&0x15&\livelink{chap:classreference}{reference} 
+\DWATdiscr&0x15&\livelink{chap:classreference}{reference} 
         \addtoindexx{discriminant attribute!encoding}  \\
-\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}&0x16&\livelink{chap:classconstant}{constant} 
+\DWATdiscrvalue&0x16&\livelink{chap:classconstant}{constant} 
         \addtoindexx{discriminant value attribute!encoding}  \\
-\livelink{chap:DWATvisibility}{DW\_AT\_visibility}&0x17&\livelink{chap:classconstant}{constant} 
+\DWATvisibility&0x17&\livelink{chap:classconstant}{constant} 
         \addtoindexx{visibility attribute!encoding} \\
-\livelink{chap:DWATimport}{DW\_AT\_import}&0x18&\livelink{chap:classreference}{reference} 
+\DWATimport&0x18&\livelink{chap:classreference}{reference} 
         \addtoindexx{import attribute!encoding}  \\
-\livelink{chap:DWATstringlength}{DW\_AT\_string\_length}&0x19&\livelink{chap:classexprloc}{exprloc}, 
+\DWATstringlength&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} 
+\DWATcommonreference&0x1a&\livelink{chap:classreference}{reference} 
         \addtoindexx{common reference attribute!encoding}  \\
-\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir}&0x1b&\livelink{chap:classstring}{string} 
+\DWATcompdir&0x1b&\livelink{chap:classstring}{string} 
         \addtoindexx{compilation directory attribute!encoding}  \\
-\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}&0x1c&\livelink{chap:classblock}{block}, \livelink{chap:classconstant}{constant}, \livelink{chap:classstring}{string} 
+\DWATconstvalue&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&\livelink{chap:classreference}{reference} 
+\DWATcontainingtype&0x1d&\livelink{chap:classreference}{reference} 
         \addtoindexx{containing type attribute!encoding} \\
-\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value}&0x1e&\livelink{chap:classreference}{reference} 
+\DWATdefaultvalue&0x1e&\livelink{chap:classreference}{reference} 
         \addtoindexx{default value attribute!encoding} \\
-\livelink{chap:DWATinline}{DW\_AT\_inline}&0x20&\livelink{chap:classconstant}{constant} 
+\DWATinline&0x20&\livelink{chap:classconstant}{constant} 
         \addtoindexx{inline attribute!encoding}  \\
-\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional}&0x21&\livelink{chap:classflag}{flag} 
+\DWATisoptional&0x21&\livelink{chap:classflag}{flag} 
         \addtoindexx{is optional attribute!encoding} \\
-\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}&0x22&\livelink{chap:classconstant}{constant}, 
+\DWATlowerbound&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} 
+\DWATproducer&0x25&\livelink{chap:classstring}{string} \addtoindexx{producer attribute!encoding}  \\
+\DWATprototyped&0x27&\livelink{chap:classflag}{flag} 
         \addtoindexx{prototyped attribute!encoding}  \\
-\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr}&0x2a&\livelink{chap:classexprloc}{exprloc},
+\DWATreturnaddr&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&\livelink{chap:classconstant}{constant}, 
+\DWATstartscope&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},
+\DWATbitstride&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},
+\DWATupperbound&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} 
+\DWATabstractorigin&0x31&\livelink{chap:classreference}{reference} 
         \addtoindexx{abstract origin attribute!encoding}  \\
-\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}&0x32&\livelink{chap:classconstant}{constant} 
+\DWATaccessibility&0x32&\livelink{chap:classconstant}{constant} 
         \addtoindexx{accessibility attribute!encoding}  \\
-\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}&0x33&\livelink{chap:classconstant}{constant} 
+\DWATaddressclass&0x33&\livelink{chap:classconstant}{constant} 
         \addtoindexx{address class attribute!encoding}  \\
-\livelink{chap:DWATartificial}{DW\_AT\_artificial}&0x34&\livelink{chap:classflag}{flag} 
+\DWATartificial&0x34&\livelink{chap:classflag}{flag} 
         \addtoindexx{artificial attribute!encoding}  \\
-\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types}&0x35&\livelink{chap:classreference}{reference} 
+\DWATbasetypes&0x35&\livelink{chap:classreference}{reference} 
         \addtoindexx{base types attribute!encoding}  \\
-\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention}&0x36&\livelink{chap:classconstant}{constant} 
+\DWATcallingconvention&0x36&\livelink{chap:classconstant}{constant} 
         \addtoindexx{calling convention attribute!encoding} \\
-\livelink{chap:DWATcount}{DW\_AT\_count}&0x37&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, \livelink{chap:classreference}{reference} 
+\DWATcount&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&\livelink{chap:classconstant}{constant}, 
+\DWATdatamemberlocation&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&\livelink{chap:classconstant}{constant} 
+\DWATdeclcolumn&0x39&\livelink{chap:classconstant}{constant} 
         \addtoindexx{declaration column attribute!encoding}  \\
-\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}&0x3a&\livelink{chap:classconstant}{constant} 
+\DWATdeclfile&0x3a&\livelink{chap:classconstant}{constant} 
         \addtoindexx{declaration file attribute!encoding}  \\
-\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}&0x3b&\livelink{chap:classconstant}{constant} 
+\DWATdeclline&0x3b&\livelink{chap:classconstant}{constant} 
         \addtoindexx{declaration line attribute!encoding}  \\
-\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}&0x3c&\livelink{chap:classflag}{flag} 
+\DWATdeclaration&0x3c&\livelink{chap:classflag}{flag} 
         \addtoindexx{declaration attribute!encoding}  \\
-\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list}&0x3d&\livelink{chap:classblock}{block} 
+\DWATdiscrlist&0x3d&\livelink{chap:classblock}{block} 
         \addtoindexx{discriminant list attribute!encoding}  \\
-\livelink{chap:DWATencoding}{DW\_AT\_encoding}&0x3e&\livelink{chap:classconstant}{constant} 
+\DWATencoding&0x3e&\livelink{chap:classconstant}{constant} 
         \addtoindexx{encoding attribute!encoding}  \\
-\livelink{chap:DWATexternal}{DW\_AT\_external}&\xiiif&\livelink{chap:classflag}{flag} 
+\DWATexternal&\xiiif&\livelink{chap:classflag}{flag} 
         \addtoindexx{external attribute!encoding}  \\
-\livelink{chap:DWATframebase}{DW\_AT\_frame\_base}&0x40&\livelink{chap:classexprloc}{exprloc}, 
+\DWATframebase&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} 
+\DWATfriend&0x41&\livelink{chap:classreference}{reference} 
         \addtoindexx{friend attribute!encoding}  \\
-\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}&0x42&\livelink{chap:classconstant}{constant} 
+\DWATidentifiercase&0x42&\livelink{chap:classconstant}{constant} 
         \addtoindexx{identifier case attribute!encoding}  \\
-\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info}&0x43&\livelink{chap:classmacptr}{macptr} 
+\DWATmacroinfo&0x43&\livelink{chap:classmacptr}{macptr} 
         \addtoindexx{macro information attribute!encoding}  \\
-\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item}&0x44&\livelink{chap:classreference}{reference} 
+\DWATnamelistitem&0x44&\livelink{chap:classreference}{reference} 
         \addtoindexx{name list item attribute!encoding}  \\
-\livelink{chap:DWATpriority}{DW\_AT\_priority}&0x45&\livelink{chap:classreference}{reference} 
+\DWATpriority&0x45&\livelink{chap:classreference}{reference} 
         \addtoindexx{priority attribute!encoding}  \\
-\livelink{chap:DWATsegment}{DW\_AT\_segment}&0x46&\livelink{chap:classexprloc}{exprloc}, 
+\DWATsegment&0x46&\livelink{chap:classexprloc}{exprloc}, 
         \livelink{chap:classloclistptr}{loclistptr} \addtoindexx{segment attribute!encoding}  \\
-\livelink{chap:DWATspecification}{DW\_AT\_specification}&0x47&\livelink{chap:classreference}{reference} 
+\DWATspecification&0x47&\livelink{chap:classreference}{reference} 
         \addtoindexx{specification attribute!encoding}  \\
-\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}&0x48&\livelink{chap:classexprloc}{exprloc}, 
+\DWATstaticlink&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} 
+\DWATtype&0x49&\livelink{chap:classreference}{reference} 
         \addtoindexx{type attribute!encoding}  \\
-\livelink{chap:DWATuselocation}{DW\_AT\_use\_location}&0x4a&\livelink{chap:classexprloc}{exprloc}, 
+\DWATuselocation&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} 
+\DWATvariableparameter&0x4b&\livelink{chap:classflag}{flag} 
         \addtoindexx{variable parameter attribute!encoding}  \\
-\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}&0x4c&\livelink{chap:classconstant}{constant} 
+\DWATvirtuality&0x4c&\livelink{chap:classconstant}{constant} 
         \addtoindexx{virtuality attribute!encoding}  \\
-\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}&0x4d&\livelink{chap:classexprloc}{exprloc}, 
+\DWATvtableelemlocation&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}, 
+\DWATallocated&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}, 
+\DWATassociated&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} 
+\DWATdatalocation&0x50&\livelink{chap:classexprloc}{exprloc} 
         \addtoindexx{data location attribute!encoding}  \\
-\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride}&0x51&\livelink{chap:classconstant}{constant}, \livelink{chap:classexprloc}{exprloc}, 
+\DWATbytestride&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} 
+\DWATentrypc&0x52&\livelink{chap:classaddress}{address} 
         \addtoindexx{entry pc attribute!encoding}  \\
-\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}&0x53&\livelink{chap:classflag}{flag} 
+\DWATuseUTFeight&0x53&\livelink{chap:classflag}{flag} 
         \addtoindexx{use UTF8 attribute!encoding}\addtoindexx{UTF-8}  \\
-\livelink{chap:DWATextension}{DW\_AT\_extension}&0x54&\livelink{chap:classreference}{reference} 
+\DWATextension&0x54&\livelink{chap:classreference}{reference} 
         \addtoindexx{extension attribute!encoding}  \\
-\livelink{chap:DWATranges}{DW\_AT\_ranges}&0x55&\livelink{chap:classrangelistptr}{rangelistptr} 
+\DWATranges&0x55&\livelink{chap:classrangelistptr}{rangelistptr} 
         \addtoindexx{ranges attribute!encoding}  \\
-\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline}&0x56&\livelink{chap:classaddress}{address}, \livelink{chap:classflag}{flag}, 
+\DWATtrampoline&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} 
+\DWATcallcolumn&0x57&\livelink{chap:classconstant}{constant} 
         \addtoindexx{call column attribute!encoding}  \\
-\livelink{chap:DWATcallfile}{DW\_AT\_call\_file}&0x58&\livelink{chap:classconstant}{constant} 
+\DWATcallfile&0x58&\livelink{chap:classconstant}{constant} 
         \addtoindexx{call file attribute!encoding}  \\
-\livelink{chap:DWATcallline}{DW\_AT\_call\_line}&0x59&\livelink{chap:classconstant}{constant} 
+\DWATcallline&0x59&\livelink{chap:classconstant}{constant} 
         \addtoindexx{call line attribute!encoding}  \\
-\livelink{chap:DWATdescription}{DW\_AT\_description}&0x5a&\livelink{chap:classstring}{string} 
+\DWATdescription&0x5a&\livelink{chap:classstring}{string} 
         \addtoindexx{description attribute!encoding}  \\
-\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale}&0x5b&\livelink{chap:classconstant}{constant} 
+\DWATbinaryscale&0x5b&\livelink{chap:classconstant}{constant} 
         \addtoindexx{binary scale attribute!encoding}  \\
-\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale}&0x5c&\livelink{chap:classconstant}{constant} 
+\DWATdecimalscale&0x5c&\livelink{chap:classconstant}{constant} 
         \addtoindexx{decimal scale attribute!encoding}  \\
-\livelink{chap:DWATsmall}{DW\_AT\_small} &0x5d&\livelink{chap:classreference}{reference} 
+\DWATsmall{} &0x5d&\livelink{chap:classreference}{reference} 
         \addtoindexx{small attribute!encoding}  \\
-\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign}&0x5e&\livelink{chap:classconstant}{constant} 
+\DWATdecimalsign&0x5e&\livelink{chap:classconstant}{constant} 
         \addtoindexx{decimal scale attribute!encoding}  \\
-\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count}&0x5f&\livelink{chap:classconstant}{constant} 
+\DWATdigitcount&0x5f&\livelink{chap:classconstant}{constant} 
         \addtoindexx{digit count attribute!encoding}  \\
-\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string}&0x60&\livelink{chap:classstring}{string} 
+\DWATpicturestring&0x60&\livelink{chap:classstring}{string} 
         \addtoindexx{picture string attribute!encoding}  \\
-\livelink{chap:DWATmutable}{DW\_AT\_mutable}&0x61&\livelink{chap:classflag}{flag} 
+\DWATmutable&0x61&\livelink{chap:classflag}{flag} 
         \addtoindexx{mutable attribute!encoding}  \\
-\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}&0x62&\livelink{chap:classflag}{flag} 
+\DWATthreadsscaled&0x62&\livelink{chap:classflag}{flag} 
         \addtoindexx{thread scaled attribute!encoding}  \\
-\livelink{chap:DWATexplicit}{DW\_AT\_explicit}&0x63&\livelink{chap:classflag}{flag} 
+\DWATexplicit&0x63&\livelink{chap:classflag}{flag} 
         \addtoindexx{explicit attribute!encoding}  \\
-\livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}&0x64&\livelink{chap:classreference}{reference} 
+\DWATobjectpointer&0x64&\livelink{chap:classreference}{reference} 
         \addtoindexx{object pointer attribute!encoding}  \\
-\livelink{chap:DWATendianity}{DW\_AT\_endianity}&0x65&\livelink{chap:classconstant}{constant} 
+\DWATendianity&0x65&\livelink{chap:classconstant}{constant} 
         \addtoindexx{endianity attribute!encoding}  \\
-\livelink{chap:DWATelemental}{DW\_AT\_elemental}&0x66&\livelink{chap:classflag}{flag} 
+\DWATelemental&0x66&\livelink{chap:classflag}{flag} 
         \addtoindexx{elemental attribute!encoding}  \\
-\livelink{chap:DWATpure}{DW\_AT\_pure}&0x67&\livelink{chap:classflag}{flag} 
+\DWATpure&0x67&\livelink{chap:classflag}{flag} 
         \addtoindexx{pure attribute!encoding}  \\
-\livelink{chap:DWATrecursive}{DW\_AT\_recursive}&0x68&\livelink{chap:classflag}{flag} 
+\DWATrecursive&0x68&\livelink{chap:classflag}{flag} 
         \addtoindexx{recursive attribute!encoding}  \\
-\livelink{chap:DWATsignature}{DW\_AT\_signature} &0x69&\livelink{chap:classreference}{reference} 
+\DWATsignature{} &0x69&\livelink{chap:classreference}{reference} 
         \addtoindexx{signature attribute!encoding}  \\ 
-\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} &0x6a&\livelink{chap:classflag}{flag} 
+\DWATmainsubprogram{} &0x6a&\livelink{chap:classflag}{flag} 
         \addtoindexx{main subprogram attribute!encoding}  \\
-\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} &0x6b&\livelink{chap:classconstant}{constant} 
+\DWATdatabitoffset{} &0x6b&\livelink{chap:classconstant}{constant} 
         \addtoindexx{data bit offset attribute!encoding}  \\
-\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} &0x6c&\livelink{chap:classflag}{flag} 
+\DWATconstexpr{} &0x6c&\livelink{chap:classflag}{flag} 
         \addtoindexx{constant expression attribute!encoding}  \\
-\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class} &0x6d&\livelink{chap:classflag}{flag} 
+\DWATenumclass{} &0x6d&\livelink{chap:classflag}{flag} 
         \addtoindexx{enumeration class attribute!encoding}  \\
-\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} &0x6e&\livelink{chap:classstring}{string} 
+\DWATlinkagename{} &0x6e&\livelink{chap:classstring}{string} 
         \addtoindexx{linkage name attribute!encoding}  \\
-\livelink{chap:DWATstringlengthbitsize}{DW\_AT\_string\_length\_bit\_size} \ddag&0x6f&
+\DWATstringlengthbitsize{} \ddag&0x6f&
                \livelink{chap:classconstant}{constant}\addtoindexx{string length attribute!size of length}  \\
-\livelink{chap:DWATstringlengthbytesize}{DW\_AT\_string\_length\_byte\_size} \ddag&0x70&
+\DWATstringlengthbytesize{} \ddag&0x70&
                \livelink{chap:classconstant}{constant}\addtoindexx{string length attribute!size of length}  \\
 \DWATrank~\ddag&0x71&
                \livelink{chap:DWATrank}{constant, exprloc}\addtoindexx{rank 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}  \\
+\DWATlouser&0x2000 & --- \addtoindexx{low user attribute encoding}  \\
+\DWAThiuser&\xiiifff& --- \addtoindexx{high user attribute encoding}  \\
 
 \end{longtable} 
 \end{centering}
@@ -1238,31 +1247,31 @@ Table \refersec{tab:attributeformencodings}.
   \hline
 
 \endlastfoot
-\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} &0x17&\livelink{chap:classlineptr}{lineptr}, \livelink{chap:classloclistptr}{loclistptr}, \livelink{chap:classmacptr}{macptr}, \livelink{chap:classrangelistptr}{rangelistptr} \\
-\livelink{chap:DWFORMexprloc}{DW\_FORM\_exprloc} &0x18&\livelink{chap:classexprloc}{exprloc} \\
-\livelink{chap:DWFORMflagpresent}{DW\_FORM\_flag\_present} &0x19&\livelink{chap:classflag}{flag} \\
-\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8} &0x20&\livelink{chap:classreference}{reference} \\
+\DWFORMaddr &0x01&\livelink{chap:classaddress}{address}  \\
+\DWFORMblocktwo &0x03&\livelink{chap:classblock}{block} \\
+\DWFORMblockfour &0x04&\livelink{chap:classblock}{block}  \\
+\DWFORMdatatwo &0x05&\livelink{chap:classconstant}{constant} \\
+\DWFORMdatafour &0x06&\livelink{chap:classconstant}{constant} \\
+\DWFORMdataeight &0x07&\livelink{chap:classconstant}{constant} \\
+\DWFORMstring&0x08&\livelink{chap:classstring}{string} \\
+\DWFORMblock&0x09&\livelink{chap:classblock}{block} \\
+\DWFORMblockone &0x0a&\livelink{chap:classblock}{block} \\
+\DWFORMdataone &\livelink{chap:classconstant}{constant} \\
+\DWFORMflag&0x0c&\livelink{chap:classflag}{flag} \\
+\DWFORMsdata&0x0d&\livelink{chap:classconstant}{constant}    \\
+\DWFORMstrp&0x0e&\livelink{chap:classstring}{string}         \\
+\DWFORMudata&0x0f&\livelink{chap:classconstant}{constant}         \\
+\DWFORMrefaddr&0x10&\livelink{chap:classreference}{reference}         \\
+\DWFORMrefone&0x11&\livelink{chap:classreference}{reference}          \\
+\DWFORMreftwo&0x12&\livelink{chap:classreference}{reference}         \\
+\DWFORMreffour&0x13&\livelink{chap:classreference}{reference}         \\
+\DWFORMrefeight&0x14&\livelink{chap:classreference}{reference} \\
+\DWFORMrefudata&0x15&\livelink{chap:classreference}{reference}  \\
+\DWFORMindirect&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
+\DWFORMsecoffset{} &0x17&\livelink{chap:classlineptr}{lineptr}, \livelink{chap:classloclistptr}{loclistptr}, \livelink{chap:classmacptr}{macptr}, \livelink{chap:classrangelistptr}{rangelistptr} \\
+\DWFORMexprloc{} &0x18&\livelink{chap:classexprloc}{exprloc} \\
+\DWFORMflagpresent{} &0x19&\livelink{chap:classflag}{flag} \\
+\DWFORMrefsigeight &0x20&\livelink{chap:classreference}{reference} \\
  
 \end{longtable}
 \end{centering}
@@ -1412,96 +1421,95 @@ Table \refersec{tab:dwarfoperationencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWOPaddr}{DW\_OP\_addr}&0x03&1 & constant address  \\ 
+\DWOPaddr&0x03&1 & constant address  \\ 
 & & &(size target specific) \\
 
-\livelink{chap:DWOPderef}{DW\_OP\_deref}&0x06&0 & \\
-
-
-\livelink{chap:DWOPconst1u}{DW\_OP\_const1u}&0x08&1&1\dash byte constant  \\
-\livelink{chap:DWOPconst1s}{DW\_OP\_const1s}&0x09&1&1\dash byte constant   \\
-\livelink{chap:DWOPconst2u}{DW\_OP\_const2u}&0x0a&1&2\dash byte constant   \\
-\livelink{chap:DWOPconst2s}{DW\_OP\_const2s}&0x0b&1&2\dash byte constant   \\
-\livelink{chap:DWOPconst4u}{DW\_OP\_const4u}&0x0c&1&4\dash byte constant    \\
-\livelink{chap:DWOPconst4s}{DW\_OP\_const4s}&0x0d&1&4\dash byte constant   \\
-\livelink{chap:DWOPconst8u}{DW\_OP\_const8u}&0x0e&1&8\dash byte constant   \\
-\livelink{chap:DWOPconst8s}{DW\_OP\_const8s}&0x0f&1&8\dash byte constant   \\
-\livelink{chap:DWOPconstu}{DW\_OP\_constu}&0x10&1&ULEB128 constant   \\
-\livelink{chap:DWOPconsts}{DW\_OP\_consts}&0x11&1&SLEB128 constant   \\
-\livelink{chap:DWOPdup}{DW\_OP\_dup}&0x12&0 &   \\
-\livelink{chap:DWOPdrop}{DW\_OP\_drop}&0x13&0  &   \\
-\livelink{chap:DWOPover}{DW\_OP\_over}&0x14&0 &   \\
-\livelink{chap:DWOPpick}{DW\_OP\_pick}&0x15&1&1\dash byte stack index   \\
-\livelink{chap:DWOPswap}{DW\_OP\_swap}&0x16&0 &   \\
-\livelink{chap:DWOProt}{DW\_OP\_rot}&0x17&0 &   \\
-\livelink{chap:DWOPxderef}{DW\_OP\_xderef}&0x18&0 &   \\
-\livelink{chap:DWOPabs}{DW\_OP\_abs}&0x19&0 &   \\
-\livelink{chap:DWOPand}{DW\_OP\_and}&0x1a&0 &   \\
-\livelink{chap:DWOPdiv}{DW\_OP\_div}&0x1b&0 &   \\
-
-
-
-\livelink{chap:DWOPminus}{DW\_OP\_minus}&0x1c&0 & \\
-\livelink{chap:DWOPmod}{DW\_OP\_mod}&0x1d&0 & \\
-\livelink{chap:DWOPmul}{DW\_OP\_mul}&0x1e&0 & \\
-\livelink{chap:DWOPneg}{DW\_OP\_neg}&0x1f&0 & \\
-\livelink{chap:DWOPnot}{DW\_OP\_not}&0x20&0 & \\
-\livelink{chap:DWOPor}{DW\_OP\_or}&0x21&0 & \\
-\livelink{chap:DWOPplus}{DW\_OP\_plus}&0x22&0 & \\
-\livelink{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst}&0x23&1&ULEB128 addend \\
-\livelink{chap:DWOPshl}{DW\_OP\_shl}&0x24&0 & \\
-\livelink{chap:DWOPshr}{DW\_OP\_shr}&0x25&0 & \\
-\livelink{chap:DWOPshra}{DW\_OP\_shra}&0x26&0 & \\
-\livelink{chap:DWOPxor}{DW\_OP\_xor}&0x27&0 & \\
-
-\livelink{chap:DWOPbra}{DW\_OP\_bra}&0x28&1 & signed 2\dash byte constant \\
-\livelink{chap:DWOPeq}{DW\_OP\_eq}&0x29&0 & \\
-\livelink{chap:DWOPge}{DW\_OP\_ge}&0x2a&0 & \\
-\livelink{chap:DWOPgt}{DW\_OP\_gt}&0x2b&0 & \\
-\livelink{chap:DWOPle}{DW\_OP\_le}&0x2c&0 & \\
-\livelink{chap:DWOPlt}{DW\_OP\_lt}&0x2d&0  & \\
-\livelink{chap:DWOPne}{DW\_OP\_ne}&0x2e&0 & \\
-\livelink{chap:DWOPskip}{DW\_OP\_skip}&0x2f&1&signed 2\dash byte constant \\ \hline
-
-\livelink{chap:DWOPlit0}{DW\_OP\_lit0}&0x30 & 0 & \\
-\livelink{chap:DWOPlit1}{DW\_OP\_lit1}&0x31 & 0& literals 0 .. 31 = \\
-\ldots & & &\hspace{0.5cm}(\livelink{chap:DWOPlit0}{DW\_OP\_lit0} + literal) \\
-\livelink{chap:DWOPlit31}{DW\_OP\_lit31}&0x4f & 0 & \\ \hline
-
-\livelink{chap:DWOPreg0}{DW\_OP\_reg0} & 0x50 & 0 & \\
-\livelink{chap:DWOPreg1}{DW\_OP\_reg1} & 0x51 & 0&reg 0 .. 31 = \\
-\ldots & & &\hspace{0.5cm}(\livelink{chap:DWOPreg0}{DW\_OP\_reg0} + regnum) \\
-\livelink{chap:DWOPreg31}{DW\_OP\_reg31} & 0x6f & 0 & \\ \hline
-
-\livelink{chap:DWOPbreg0}{DW\_OP\_breg0} & 0x70 &1 & SLEB128 offset \\
-\livelink{chap:DWOPbreg1}{DW\_OP\_breg1} & 0x71 & 1 &base register 0 .. 31 = \\
-... & &              &\hspace{0.5cm}(\livelink{chap:DWOPbreg0}{DW\_OP\_breg0} + regnum) \\
-\livelink{chap:DWOPbreg31}{DW\_OP\_breg31} & 0x8f & 1 & \\ \hline
-
-\livelink{chap:DWOPregx}{DW\_OP\_regx} & 0x90 &1&ULEB128 register \\
-\livelink{chap:DWOPfbreg}{DW\_OP\_fbreg} & 0x91&1&SLEB128 offset \\
-\livelink{chap:DWOPbregx}{DW\_OP\_bregx} & 0x92&2 &ULEB128 register followed \\
+\DWOPderef&0x06&0 & \\
+
+\DWOPconstoneu&0x08&1&1\dash byte constant  \\
+\DWOPconstones&0x09&1&1\dash byte constant   \\
+\DWOPconsttwou&0x0a&1&2\dash byte constant   \\
+\DWOPconsttwos&0x0b&1&2\dash byte constant   \\
+\DWOPconstfouru&0x0c&1&4\dash byte constant    \\
+\DWOPconstfours&0x0d&1&4\dash byte constant   \\
+\DWOPconsteightu&0x0e&1&8\dash byte constant   \\
+\DWOPconsteights&0x0f&1&8\dash byte constant   \\
+\DWOPconstu&0x10&1&ULEB128 constant   \\
+\DWOPconsts&0x11&1&SLEB128 constant   \\
+\DWOPdup&0x12&0 &   \\
+\DWOPdrop&0x13&0  &   \\
+\DWOPover&0x14&0 &   \\
+\DWOPpick&0x15&1&1\dash byte stack index   \\
+\DWOPswap&0x16&0 &   \\
+\DWOProt&0x17&0 &   \\
+\DWOPxderef&0x18&0 &   \\
+\DWOPabs&0x19&0 &   \\
+\DWOPand&0x1a&0 &   \\
+\DWOPdiv&0x1b&0 &   \\
+
+
+
+\DWOPminus&0x1c&0 & \\
+\DWOPmod&0x1d&0 & \\
+\DWOPmul&0x1e&0 & \\
+\DWOPneg&0x1f&0 & \\
+\DWOPnot&0x20&0 & \\
+\DWOPor&0x21&0 & \\
+\DWOPplus&0x22&0 & \\
+\DWOPplusuconst&0x23&1&ULEB128 addend \\
+\DWOPshl&0x24&0 & \\
+\DWOPshr&0x25&0 & \\
+\DWOPshra&0x26&0 & \\
+\DWOPxor&0x27&0 & \\
+
+\DWOPbra&0x28&1 & signed 2\dash byte constant \\
+\DWOPeq&0x29&0 & \\
+\DWOPge&0x2a&0 & \\
+\DWOPgt&0x2b&0 & \\
+\DWOPle&0x2c&0 & \\
+\DWOPlt&0x2d&0  & \\
+\DWOPne&0x2e&0 & \\
+\DWOPskip&0x2f&1&signed 2\dash byte constant \\ \hline
+
+\DWOPlitzero & 0x30 & 0 & \\
+\DWOPlitone  & 0x31 & 0& literals 0 .. 31 = \\
+\ldots & & &\hspace{0.5cm}(\DWOPlitzero + literal) \\
+\DWOPlitthirtyone & 0x4f & 0 & \\ \hline
+
+\DWOPregzero & 0x50 & 0 & \\
+\DWOPregone  & 0x51 & 0&reg 0 .. 31 = \\
+\ldots & & &\hspace{0.5cm}(\DWOPregzero + regnum) \\
+\DWOPregthirtyone & 0x6f & 0 & \\ \hline
+
+\DWOPbregzero & 0x70 &1 & SLEB128 offset \\
+\DWOPbregone  & 0x71 & 1 &base register 0 .. 31 = \\
+... & &              &\hspace{0.5cm}(\DWOPbregzero + regnum) \\
+\DWOPbregthirtyone & 0x8f & 1 & \\ \hline
+
+\DWOPregx{} & 0x90 &1&ULEB128 register \\
+\DWOPfbreg{} & 0x91&1&SLEB128 offset \\
+\DWOPbregx{} & 0x92&2 &ULEB128 register followed \\
 & & & by SLEB128 offset \\
-\livelink{chap:DWOPpiece}{DW\_OP\_piece} & 0x93 &1& ULEB128 size of piece addressed \\
-\livelink{chap:DWOPderefsize}{DW\_OP\_deref\_size} & 0x94 &1& 1-byte size of data retrieved \\
-\livelink{chap:DWOPxderefsize}{DW\_OP\_xderef\_size} & 0x95&1&1-byte size of data retrieved \\
-\livelink{chap:DWOPnop}{DW\_OP\_nop} & 0x96 &0& \\
+\DWOPpiece{} & 0x93 &1& ULEB128 size of piece addressed \\
+\DWOPderefsize{} & 0x94 &1& 1-byte size of data retrieved \\
+\DWOPxderefsize{} & 0x95&1&1-byte size of data retrieved \\
+\DWOPnop{} & 0x96 &0& \\
 
 
-\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}&0x97&0 &  \\
-\livelink{chap:DWOPcall2}{DW\_OP\_call2}&0x98&1& 2\dash byte offset of DIE \\
-\livelink{chap:DWOPcall4}{DW\_OP\_call4}&0x99&1& 4\dash byte offset of DIE \\
-\livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}&0x9a&1& 4\dash\  or 8\dash byte\\
+\DWOPpushobjectaddress&0x97&0 &  \\
+\DWOPcalltwo&0x98&1& 2\dash byte offset of DIE \\
+\DWOPcallfour&0x99&1& 4\dash byte offset of DIE \\
+\DWOPcallref&0x9a&1& 4\dash\  or 8\dash byte\\
      &&& offset of DIE \\
-\livelink{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address}&0x9b &0& \\
-\livelink{chap:DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa} &0x9c &0& \\
-\livelink{chap:DWOPbitpiece}{DW\_OP\_bit\_piece}&0x9d &2&ULEB128 size followed by \\
+\DWOPformtlsaddress&0x9b &0& \\
+\DWOPcallframecfa{} &0x9c &0& \\
+\DWOPbitpiece&0x9d &2&ULEB128 size followed by \\
 &&&ULEB128 offset\\
-\livelink{chap:DWOPimplicitvalue}{DW\_OP\_implicit\_value} &0x9e &2&ULEB128 size followed by \\
+\DWOPimplicitvalue{} &0x9e &2&ULEB128 size followed by \\
 &&&\nolink{block} of that size\\
-\livelink{chap:DWOPstackvalue}{DW\_OP\_stack\_value} &0x9f &0& \\
-\livelink{chap:DWXXXlohiuser}{DW\_OP\_lo\_user} &0xe0 && \\
-\livelink{chap:DWXXXlohiuser}{DW\_OP\_hi\_user} &\xff && \\
+\DWOPstackvalue{} &0x9f &0& \\
+\DWOPlouser{} &0xe0 && \\
+\DWOPhiuser{} &\xff && \\
 
 \end{longtable}
 \end{centering}
@@ -1547,7 +1555,7 @@ The encodings of the
 constants used in 
 \addtoindexx{encoding attribute!encoding}
 the 
-\livelink{chap:DWATencoding}{DW\_AT\_encoding}
+\DWATencoding{}
 attribute are given in 
 Table \refersec{tab:basetypeencodingvalues}
 
@@ -1563,30 +1571,30 @@ Table \refersec{tab:basetypeencodingvalues}
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWATEaddress}{DW\_ATE\_address}&0x01 \\
-\livelink{chap:DWATEboolean}{DW\_ATE\_boolean}&0x02 \\
-\livelink{chap:DWATEcomplexfloat}{DW\_ATE\_complex\_float}&0x03 \\
-\livelink{chap:DWATEfloat}{DW\_ATE\_float}&0x04 \\
-\livelink{chap:DWATEsigned}{DW\_ATE\_signed}&0x05 \\
-\livelink{chap:DWATEsignedchar}{DW\_ATE\_signed\_char}&0x06 \\
-\livelink{chap:DWATEunsigned}{DW\_ATE\_unsigned}&0x07 \\
-\livelink{chap:DWATEunsignedchar}{DW\_ATE\_unsigned\_char}&0x08 \\
-\livelink{chap:DWATEimaginaryfloat}{DW\_ATE\_imaginary\_float}&0x09 \\
-\livelink{chap:DWATEpackeddecimal}{DW\_ATE\_packed\_decimal}&0x0a \\
-\livelink{chap:DWATEnumericstring}{DW\_ATE\_numeric\_string}&0x0b \\
-\livelink{chap:DWATEedited}{DW\_ATE\_edited}&0x0c \\
-\livelink{chap:DWATEsignedfixed}{DW\_ATE\_signed\_fixed}&0x0d \\
-\livelink{chap:DWATEunsignedfixed}{DW\_ATE\_unsigned\_fixed}&0x0e \\
-\livelink{chap:DWATEdecimalfloat}{DW\_ATE\_decimal\_float} & 0x0f \\
-\livelink{chap:DWATEUTF}{DW\_ATE\_UTF} & 0x10 \\
-\livelink{chap:DWXXXlohiuser}{DW\_ATE\_lo\_user} & 0x80 \\
-\livelink{chap:DWXXXlohiuser}{DW\_ATE\_hi\_user} & \xff \\
+\DWATEaddress&0x01 \\
+\DWATEboolean&0x02 \\
+\DWATEcomplexfloat&0x03 \\
+\DWATEfloat&0x04 \\
+\DWATEsigned&0x05 \\
+\DWATEsignedchar&0x06 \\
+\DWATEunsigned&0x07 \\
+\DWATEunsignedchar&0x08 \\
+\DWATEimaginaryfloat&0x09 \\
+\DWATEpackeddecimal&0x0a \\
+\DWATEnumericstring&0x0b \\
+\DWATEedited&0x0c \\
+\DWATEsignedfixed&0x0d \\
+\DWATEunsignedfixed&0x0e \\
+\DWATEdecimalfloat{} & 0x0f \\
+\DWATEUTF{} & 0x10 \\
+\DWATElouser{} & 0x80 \\
+\DWATEhiuser{} & \xff \\
 \end{longtable}
 \end{centering}
 
 \needlines{4}
 The encodings of the constants used in the 
-\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign} attribute 
+\DWATdecimalsign{} attribute 
 are given in 
 Table \refersec{tab:decimalsignencodings}.
 
@@ -1603,17 +1611,17 @@ Table \refersec{tab:decimalsignencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWDSunsigned}{DW\_DS\_unsigned} & 0x01  \\
-\livelink{chap:DWDSleadingoverpunch}{DW\_DS\_leading\_overpunch} & 0x02  \\
-\livelink{chap:DWDStrailingoverpunch}{DW\_DS\_trailing\_overpunch} & 0x03  \\
-\livelink{chap:DWDSleadingseparate}{DW\_DS\_leading\_separate} & 0x04  \\
-\livelink{chap:DWDStrailingseparate}{DW\_DS\_trailing\_separate} & 0x05  \\
+\DWDSunsigned{} & 0x01  \\
+\DWDSleadingoverpunch{} & 0x02  \\
+\DWDStrailingoverpunch{} & 0x03  \\
+\DWDSleadingseparate{} & 0x04  \\
+\DWDStrailingseparate{} & 0x05  \\
 
 \end{longtable}
 \end{centering}
 
 The encodings of the constants used in the 
-\livelink{chap:DWATendianity}{DW\_AT\_endianity} attribute are given in 
+\DWATendianity{} attribute are given in 
 Table \refersec{tab:endianityencodings}.
 
 \begin{centering}
@@ -1629,11 +1637,11 @@ Table \refersec{tab:endianityencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWENDdefault}{DW\_END\_default}  & 0x00 \\
-\livelink{chap:DWENDbig}{DW\_END\_big} & 0x01 \\
-\livelink{chap:DWENDlittle}{DW\_END\_little} & 0x02 \\
-\livelink{chap:DWXXXlohiuser}{DW\_END\_lo\_user} & 0x40 \\
-\livelink{chap:DWXXXlohiuser}{DW\_END\_hi\_user} & \xff \\
+\DWENDdefault{}  & 0x00 \\
+\DWENDbig{} & 0x01 \\
+\DWENDlittle{} & 0x02 \\
+\DWENDlouser{} & 0x40 \\
+\DWENDhiuser{} & \xff \\
 
 \end{longtable}
 \end{centering}
@@ -1641,7 +1649,7 @@ Table \refersec{tab:endianityencodings}.
 \section{Accessibility Codes}
 \label{datarep:accessibilitycodes}
 The encodings of the constants used in the 
-\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}
+\DWATaccessibility{}
 attribute 
 \addtoindexx{accessibility attribute!encoding}
 are given in 
@@ -1660,9 +1668,9 @@ Table \refersec{tab:accessibilityencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWACCESSpublic}{DW\_ACCESS\_public}&0x01  \\
-\livelink{chap:DWACCESSprotected}{DW\_ACCESS\_protected}&0x02 \\
-\livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}&0x03 \\
+\DWACCESSpublic&0x01  \\
+\DWACCESSprotected&0x02 \\
+\DWACCESSprivate&0x03 \\
 
 \end{longtable}
 \end{centering}
@@ -1671,7 +1679,7 @@ Table \refersec{tab:accessibilityencodings}.
 \section{Visibility Codes}
 \label{datarep:visibilitycodes}
 The encodings of the constants used in the 
-\livelink{chap:DWATvisibility}{DW\_AT\_visibility} attribute are given in 
+\DWATvisibility{} attribute are given in 
 Table \refersec{tab:visibilityencodings}. 
 
 \begin{centering}
@@ -1687,9 +1695,9 @@ Table \refersec{tab:visibilityencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWVISlocal}{DW\_VIS\_local}&0x01 \\
-\livelink{chap:DWVISexported}{DW\_VIS\_exported}&0x02 \\
-\livelink{chap:DWVISqualified}{DW\_VIS\_qualified}&0x03 \\
+\DWVISlocal&0x01 \\
+\DWVISexported&0x02 \\
+\DWVISqualified&0x03 \\
 
 \end{longtable}
 \end{centering}
@@ -1698,7 +1706,7 @@ Table \refersec{tab:visibilityencodings}.
 \label{datarep:vitualitycodes}
 
 The encodings of the constants used in the 
-\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality} attribute are given in 
+\DWATvirtuality{} attribute are given in 
 Table \refersec{tab:virtualityencodings}.
 
 \begin{centering}
@@ -1714,9 +1722,9 @@ Table \refersec{tab:virtualityencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWVIRTUALITYnone}{DW\_VIRTUALITY\_none}&0x00 \\
-\livelink{chap:DWVIRTUALITYvirtual}{DW\_VIRTUALITY\_virtual}&0x01 \\
-\livelink{chap:DWVIRTUALITYpurevirtual}{DW\_VIRTUALITY\_pure\_virtual}&0x02 \\
+\DWVIRTUALITYnone&0x00 \\
+\DWVIRTUALITYvirtual&0x01 \\
+\DWVIRTUALITYpurevirtual&0x02 \\
 
 
 
@@ -1724,8 +1732,8 @@ Table \refersec{tab:virtualityencodings}.
 \end{centering}
 
 The value 
-\livelink{chap:DWVIRTUALITYnone}{DW\_VIRTUALITY\_none} is equivalent to the absence of the 
-\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}
+\DWVIRTUALITYnone{} is equivalent to the absence of the 
+\DWATvirtuality{}
 attribute.
 
 \section{Source Languages}
@@ -1736,7 +1744,7 @@ The encodings of the constants used
 in 
 \addtoindexx{language name encoding}
 the 
-\livelink{chap:DWATlanguage}{DW\_AT\_language}
+\DWATlanguage{}
 attribute are given in 
 Table \refersec{tab:languageencodings}.
 Names marked with
@@ -1748,8 +1756,8 @@ Table \refersec{tab:languageencodings}
 also shows the 
 \addtoindexx{lower bound attribute!default}
 default lower bound, if any, assumed for
-an omitted \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound} attribute in the context of a
-\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type} debugging information entry for each
+an omitted \DWATlowerbound{} attribute in the context of a
+\DWTAGsubrangetype{} debugging information entry for each
 defined language.
 
 \begin{centering}
@@ -1766,32 +1774,32 @@ defined language.
   \dag \ \textit{See text} \\ \ddag \ \textit{New in \addtoindex{DWARF Version 5}}
 \endlastfoot
 
-\livelink{chap:DWLANGC89}{DW\_LANG\_C89} &0x0001 &0       \\
-\livelink{chap:DWLANGC}{DW\_LANG\_C} &0x0002 &0  \\
-\livelink{chap:DWLANGAda83}{DW\_LANG\_Ada83} \dag &0x0003 &1  \addtoindexx{Ada}     \\
-\livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus} &0x0004 &0       \\
-\livelink{chap:DWLANGCobol74}{DW\_LANG\_Cobol74} \dag &0x0005 &1       \\
-\livelink{chap:DWLANGCobol85}{DW\_LANG\_Cobol85} \dag &0x0006 &1       \\
-\livelink{chap:DWLANGFortran77}{DW\_LANG\_Fortran77} &0x0007 &1       \\
-\livelink{chap:DWLANGFortran90}{DW\_LANG\_Fortran90} &0x0008 &1       \\
-\livelink{chap:DWLANGPascal83}{DW\_LANG\_Pascal83} &0x0009 &1       \\
-\livelink{chap:DWLANGModula2}{DW\_LANG\_Modula2} &0x000a &1       \\
-\livelink{chap:DWLANGJava}{DW\_LANG\_Java}&0x000b &0       \\
-\livelink{chap:DWLANGC99}{DW\_LANG\_C99}&0x000c &0       \\
-\livelink{chap:DWLANGAda95}{DW\_LANG\_Ada95} \dag &0x000d &1 \addtoindexx{Ada}      \\
-\livelink{chap:DWLANGFortran95}{DW\_LANG\_Fortran95} &0x000e &1       \\
-\livelink{chap:DWLANGPLI}{DW\_LANG\_PLI} \dag &0x000f &1 \\
-\livelink{chap:DWLANGObjC}{DW\_LANG\_ObjC} &0x0010 &0 \\
-\livelink{chap:DWLANGObjCplusplus}{DW\_LANG\_ObjC\_plus\_plus} &0x0011 &0 \\
-\livelink{chap:DWLANGUPC}{DW\_LANG\_UPC} &0x0012 &0 \\
-\livelink{chap:DWLANGD}{DW\_LANG\_D} &0x0013 &0 \\
-\livelink{chap:DWLANGPython}{DW\_LANG\_Python} \dag &0x0014 &0 \\
-\livelink{chap:DWLANGOpenCL}{DW\_LANG\_OpenCL} \dag \ddag &0x0015 &0 \\
-\livelink{chap:DWLANGGo}{DW\_LANG\_Go} \dag \ddag &0x0016 &0 \\
-\livelink{chap:DWLANGModula3}{DW\_LANG\_Modula3} \dag \ddag &0x0017 &1 \\
-\livelink{chap:DWLANGHaskell}{DW\_LANG\_Haskell} \dag \ddag &0x0018 &0 \\
-\livelink{chap:DWXXXlohiuser}{DW\_LANG\_lo\_user} &0x8000 & \\
-\livelink{chap:DWXXXlohiuser}{DW\_LANG\_hi\_user} &\xffff & \\
+\DWLANGCeightynine &0x0001 &0       \\
+\DWLANGC{} &0x0002 &0  \\
+\DWLANGAdaeightythree{} \dag &0x0003 &1  \addtoindexx{Ada}     \\
+\DWLANGCplusplus{} &0x0004 &0       \\
+\DWLANGCobolseventyfour{} \dag &0x0005 &1       \\
+\DWLANGCoboleightyfive{} \dag &0x0006 &1       \\
+\DWLANGFortranseventyseven &0x0007 &1       \\
+\DWLANGFortranninety &0x0008 &1       \\
+\DWLANGPascaleightythree &0x0009 &1       \\
+\DWLANGModulatwo &0x000a &1       \\
+\DWLANGJava &0x000b &0       \\
+\DWLANGCninetynine &0x000c &0       \\
+\DWLANGAdaninetyfive{} \dag &0x000d &1 \addtoindexx{Ada}      \\
+\DWLANGFortranninetyfive &0x000e &1       \\
+\DWLANGPLI{} \dag &0x000f &1 \\
+\DWLANGObjC{} &0x0010 &0 \\
+\DWLANGObjCplusplus{} &0x0011 &0 \\
+\DWLANGUPC{} &0x0012 &0 \\
+\DWLANGD{} &0x0013 &0 \\
+\DWLANGPython{} \dag &0x0014 &0 \\
+\DWLANGOpenCL{} \dag \ddag &0x0015 &0 \\
+\DWLANGGo{} \dag \ddag &0x0016 &0 \\
+\DWLANGModulathree{} \dag \ddag &0x0017 &1 \\
+\DWLANGHaskell{} \dag \ddag &0x0018 &0 \\
+\DWLANGlouser{} &0x8000 & \\
+\DWLANGhiuser{} &\xffff & \\
 
 \end{longtable}
 \end{centering}
@@ -1802,14 +1810,14 @@ defined language.
 The value of the common 
 \addtoindexi{address}{address class!attribute encoding}
 class encoding 
-\livelink{chap:DWADDRnone}{DW\_ADDR\_none} is 0.
+\DWADDRnone{} is 0.
 
 
 \section{Identifier Case}
 \label{datarep:identifiercase}
 
 The encodings of the constants used in the 
-\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case} attribute are given in 
+\DWATidentifiercase{} attribute are given in 
 Table \refersec{tab:identifiercaseencodings}.
 
 \begin{centering}
@@ -1824,17 +1832,17 @@ Table \refersec{tab:identifiercaseencodings}.
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWIDcasesensitive}{DW\_ID\_case\_sensitive}&0x00     \\
-\livelink{chap:DWIDupcase}{DW\_ID\_up\_case}&0x01     \\
-\livelink{chap:DWIDdowncase}{DW\_ID\_down\_case}&0x02     \\
-\livelink{chap:DWIDcaseinsensitive}{DW\_ID\_case\_insensitive}&0x03     \\
+\DWIDcasesensitive&0x00     \\
+\DWIDupcase&0x01     \\
+\DWIDdowncase&0x02     \\
+\DWIDcaseinsensitive&0x03     \\
 \end{longtable}
 \end{centering}
 
 \section{Calling Convention Encodings}
 \label{datarep:callingconventionencodings}
 The encodings of the constants used in the 
-\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention} attribute are given in
+\DWATcallingconvention{} attribute are given in
 Table \refersec{tab:callingconventionencodings}.
 
 \begin{centering}
@@ -1850,11 +1858,11 @@ Table \refersec{tab:callingconventionencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWCCnormal}{DW\_CC\_normal}&0x01     \\
-\livelink{chap:DWCCprogram}{DW\_CC\_program}&0x02     \\
-\livelink{chap:DWCCnocall}{DW\_CC\_nocall}&0x03     \\
-\livelink{chap:DWXXXlohiuser}{DW\_CC\_lo\_user}&0x40     \\
-\livelink{chap:DWXXXlohiuser}{DW\_CC\_hi\_user}&\xff     \\
+\DWCCnormal&0x01     \\
+\DWCCprogram&0x02     \\
+\DWCCnocall&0x03     \\
+\DWCClouser&0x40     \\
+\DWCChiuser&\xff     \\
 
 \end{longtable}
 \end{centering}
@@ -1865,7 +1873,7 @@ Table \refersec{tab:callingconventionencodings}.
 The encodings of the constants used in 
 \addtoindexx{inline attribute!encoding}
 the 
-\livelink{chap:DWATinline}{DW\_AT\_inline} attribute are given in 
+\DWATinline{} attribute are given in 
 Table \refersec{tab:inlineencodings}.
 
 \needlines{8}
@@ -1882,10 +1890,10 @@ Table \refersec{tab:inlineencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWINLnotinlined}{DW\_INL\_not\_inlined}&0x00      \\
-\livelink{chap:DWINLinlined}{DW\_INL\_inlined}&0x01      \\
-\livelink{chap:DWINLdeclarednotinlined}{DW\_INL\_declared\_not\_inlined}&0x02      \\
-\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined}&0x03      \\
+\DWINLnotinlined&0x00      \\
+\DWINLinlined&0x01      \\
+\DWINLdeclarednotinlined&0x02      \\
+\DWINLdeclaredinlined&0x03      \\
 
 \end{longtable}
 \end{centering}
@@ -1897,7 +1905,7 @@ Table \refersec{tab:inlineencodings}.
 \label{datarep:arrayordering}
 
 The encodings of the constants used in the 
-\livelink{chap:DWATordering}{DW\_AT\_ordering} attribute are given in 
+\DWATordering{} attribute are given in 
 Table \refersec{tab:orderingencodings}.
 
 \needlines{8}
@@ -1914,8 +1922,8 @@ Table \refersec{tab:orderingencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWORDrowmajor}{DW\_ORD\_row\_major}&0x00  \\
-\livelink{chap:DWORDcolmajor}{DW\_ORD\_col\_major}&0x01  \\
+\DWORDrowmajor&0x00  \\
+\DWORDcolmajor&0x01  \\
 
 \end{longtable}
 \end{centering}
@@ -1927,7 +1935,7 @@ Table \refersec{tab:orderingencodings}.
 The descriptors used in 
 \addtoindexx{discriminant list attribute!encoding}
 the 
-\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list} attribute are 
+\DWATdiscrlist{} attribute are 
 encoded as 1\dash byte constants. The
 defined values are given in 
 Table \refersec{tab:discriminantdescriptorencodings}.
@@ -1946,8 +1954,8 @@ Table \refersec{tab:discriminantdescriptorencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWDSClabel}{DW\_DSC\_label}&0x00 \\
-\livelink{chap:DWDSCrange}{DW\_DSC\_range}&0x01 \\
+\DWDSClabel&0x00 \\
+\DWDSCrange&0x01 \\
 
 \end{longtable}
 \end{centering}
@@ -2125,18 +2133,18 @@ Table \refersec{tab:linenumberstandardopcodeencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWLNScopy}{DW\_LNS\_copy}&0x01 \\
-\livelink{chap:DWLNSadvancepc}{DW\_LNS\_advance\_pc}&0x02 \\
-\livelink{chap:DWLNSadvanceline}{DW\_LNS\_advance\_line}&0x03 \\
-\livelink{chap:DWLNSsetfile}{DW\_LNS\_set\_file}&0x04 \\
-\livelink{chap:DWLNSsetcolumn}{DW\_LNS\_set\_column}&0x05 \\
-\livelink{chap:DWLNSnegatestmt}{DW\_LNS\_negate\_stmt}&0x06 \\
-\livelink{chap:DWLNSsetbasicblock}{DW\_LNS\_set\_basic\_block}&0x07 \\
-\livelink{chap:DWLNSconstaddpc}{DW\_LNS\_const\_add\_pc}&0x08 \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x09 \\
-\livelink{chap:DWLNSsetprologueend}{DW\_LNS\_set\_prologue\_end}&0x0a \\
-\livelink{chap:DWLNSsetepiloguebegin}{DW\_LNS\_set\_epilogue\_begin}&0x0b \\
-\livelink{chap:DWLNSsetisa}{DW\_LNS\_set\_isa}&0x0c \\
+\DWLNScopy&0x01 \\
+\DWLNSadvancepc&0x02 \\
+\DWLNSadvanceline&0x03 \\
+\DWLNSsetfile&0x04 \\
+\DWLNSsetcolumn&0x05 \\
+\DWLNSnegatestmt&0x06 \\
+\DWLNSsetbasicblock&0x07 \\
+\DWLNSconstaddpc&0x08 \\
+\DWLNSfixedadvancepc&0x09 \\
+\DWLNSsetprologueend&0x0a \\
+\DWLNSsetepiloguebegin&0x0b \\
+\DWLNSsetisa&0x0c \\
 
 \end{longtable}
 \end{centering}
@@ -2160,12 +2168,12 @@ Table \refersec{tab:linenumberextendedopcodeencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWLNEendsequence}{DW\_LNE\_end\_sequence}&0x01    \\
-\livelink{chap:DWLNEsetaddress}{DW\_LNE\_set\_address}&0x02\\
-\livelink{chap:DWLNEdefinefile}{DW\_LNE\_define\_file}&0x03\\
-\livelink{chap:DWLNEsetdiscriminator}{DW\_LNE\_set\_discriminator} &0x04   \\
-\livelink{chap:DWXXXlohiuser}{DW\_LNE\_lo\_user}&0x80   \\
-\livelink{chap:DWXXXlohiuser}{DW\_LNE\_hi\_user}&\xff   \\
+\DWLNEendsequence&0x01    \\
+\DWLNEsetaddress&0x02\\
+\DWLNEdefinefile&0x03\\
+\DWLNEsetdiscriminator{} &0x04   \\
+\DWLNElouser&0x80   \\
+\DWLNEhiuser&\xff   \\
 
 \end{longtable}
 \end{centering}
@@ -2176,7 +2184,7 @@ Table \refersec{tab:linenumberextendedopcodeencodings}.
 The source line numbers and source file indices encoded in the
 macro information section are represented as unsigned LEB128
 numbers as are the constants in a 
-\livelink{chap:DWMACINFOvendorext}{DW\_MACINFO\_vendor\_ext} entry.
+\DWMACINFOvendorext{} entry.
 
 The macinfo type is encoded as a single byte. 
 The encodings 
@@ -2198,11 +2206,11 @@ Table \refersec{tab:macinfotypeencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWMACINFOdefine}{DW\_MACINFO\_define}&0x01 \\
-\livelink{chap:DWMACINFOundef}{DW\_MACINFO\_undef}&0x02 \\
-\livelink{chap:DWMACINFOstartfile}{DW\_MACINFO\_start\_file}&0x03 \\
-\livelink{chap:DWMACINFOendfile}{DW\_MACINFO\_end\_file}&0x04 \\
-\livelink{chap:DWMACINFOvendorext}{DW\_MACINFO\_vendor\_ext}&\xff \\
+\DWMACINFOdefine&0x01 \\
+\DWMACINFOundef&0x02 \\
+\DWMACINFOstartfile&0x03 \\
+\DWMACINFOendfile&0x04 \\
+\DWMACINFOvendorext&\xff \\
 
 \end{longtable}
 \end{centering}
@@ -2241,35 +2249,35 @@ Table \refersec{tab:callframeinstructionencodings}.
   \hline
 \endlastfoot
 
-\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}&0x1&delta & \\
-\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}&0x2&register&ULEB128 offset \\
-\livelink{chap:DWCFArestore}{DW\_CFA\_restore}&0x3&register & & \\
-\livelink{chap:DWCFAnop}{DW\_CFA\_nop}&0&0 & & \\
-\livelink{chap:DWCFAsetloc}{DW\_CFA\_set\_loc}&0&0x01&address & \\
-\livelink{chap:DWCFAadvanceloc1}{DW\_CFA\_advance\_loc1}&0&0x02&1\dash byte delta & \\
-\livelink{chap:DWCFAadvanceloc2}{DW\_CFA\_advance\_loc2}&0&0x03&2\dash byte delta & \\
-\livelink{chap:DWCFAadvanceloc4}{DW\_CFA\_advance\_loc4}&0&0x04&4\dash byte delta & \\
-\livelink{chap:DWCFAoffsetextended}{DW\_CFA\_offset\_extended}&0&0x05&ULEB128 register&ULEB128 offset \\
-\livelink{chap:DWCFArestoreextended}{DW\_CFA\_restore\_extended}&0&0x06&ULEB128 register & \\
-\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined}&0&0x07&ULEB128 register & \\
-\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value}&0&0x08 &ULEB128 register & \\
-\livelink{chap:DWCFAregister}{DW\_CFA\_register}&0&0x09&ULEB128 register &ULEB128 offset \\
-\livelink{chap:DWCFArememberstate}{DW\_CFA\_remember\_state}&0&0x0a & & \\
-\livelink{chap:DWCFArestorestate}{DW\_CFA\_restore\_state}&0&0x0b & & \\
-\livelink{chap:DWCFAdefcfa}{DW\_CFA\_def\_cfa}&0&0x0c &ULEB128 register&ULEB128 offset \\
-\livelink{chap:DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}&0&0x0d&ULEB128 register & \\
-\livelink{chap:DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}&0&0x0e &ULEB128 offset & \\
-\livelink{chap:DWCFAdefcfaexpression}{DW\_CFA\_def\_cfa\_expression}&0&0x0f &BLOCK  \\
-\livelink{chap:DWCFAexpression}{DW\_CFA\_expression}&0&0x10&ULEB128 register & BLOCK \\
-
-\livelink{chap:DWCFAoffsetextendedsf}{DW\_CFA\_offset\_extended\_sf}&0&0x11&ULEB128 register&SLEB128 offset \\
-\livelink{chap:DWCFAdefcfasf}{DW\_CFA\_def\_cfa\_sf}&0&0x12&ULEB128 register&SLEB128 offset \\
-\livelink{chap:DWCFAdefcfaoffsetsf}{DW\_CFA\_def\_cfa\_offset\_sf}&0&0x13&SLEB128 offset & \\
-\livelink{chap:DWCFAvaloffset}{DW\_CFA\_val\_offset}&0&0x14&ULEB128&ULEB128 \\
-\livelink{chap:DWCFAvaloffsetsf}{DW\_CFA\_val\_offset\_sf}&0&0x15&ULEB128&SLEB128 \\
-\livelink{chap:DWCFAvalexpression}{DW\_CFA\_val\_expression}&0&0x16&ULEB128&BLOCK  \\
-\livelink{chap:DWXXXlohiuser}{DW\_CFA\_lo\_user}&0&0x1c   & & \\
-\livelink{chap:DWXXXlohiuser}{DW\_CFA\_hi\_user}&0&\xiiif & & \\
+\DWCFAadvanceloc&0x1&delta & \\
+\DWCFAoffset&0x2&register&ULEB128 offset \\
+\DWCFArestore&0x3&register & & \\
+\DWCFAnop&0&0 & & \\
+\DWCFAsetloc&0&0x01&address & \\
+\DWCFAadvancelocone&0&0x02&1\dash byte delta & \\
+\DWCFAadvanceloctwo&0&0x03&2\dash byte delta & \\
+\DWCFAadvancelocfour&0&0x04&4\dash byte delta & \\
+\DWCFAoffsetextended&0&0x05&ULEB128 register&ULEB128 offset \\
+\DWCFArestoreextended&0&0x06&ULEB128 register & \\
+\DWCFAundefined&0&0x07&ULEB128 register & \\
+\DWCFAsamevalue&0&0x08 &ULEB128 register & \\
+\DWCFAregister&0&0x09&ULEB128 register &ULEB128 offset \\
+\DWCFArememberstate&0&0x0a & & \\
+\DWCFArestorestate&0&0x0b & & \\
+\DWCFAdefcfa&0&0x0c &ULEB128 register&ULEB128 offset \\
+\DWCFAdefcfaregister&0&0x0d&ULEB128 register & \\
+\DWCFAdefcfaoffset&0&0x0e &ULEB128 offset & \\
+\DWCFAdefcfaexpression&0&0x0f &BLOCK  \\
+\DWCFAexpression&0&0x10&ULEB128 register & BLOCK \\
+
+\DWCFAoffsetextendedsf&0&0x11&ULEB128 register&SLEB128 offset \\
+\DWCFAdefcfasf&0&0x12&ULEB128 register&SLEB128 offset \\
+\DWCFAdefcfaoffsetsf&0&0x13&SLEB128 offset & \\
+\DWCFAvaloffset&0&0x14&ULEB128&ULEB128 \\
+\DWCFAvaloffsetsf&0&0x15&ULEB128&SLEB128 \\
+\DWCFAvalexpression&0&0x16&ULEB128&BLOCK  \\
+\DWCFAlouser&0&0x1c   & & \\
+\DWCFAhiuser&0&\xiiif & & \\
 \end{longtable}
 \end{centering}
 
@@ -2427,7 +2435,7 @@ or namespace, beginning with the outermost such construct,
 append the letter 'C', the DWARF tag of the construct, and
 the name (taken from 
 \addtoindexx{name attribute}
-the \livelink{chap:DWATname}{DW\_AT\_name} attribute) of the type
+the \DWATname{} attribute) of the type
 \addtoindexx{name attribute}
 or namespace (including its trailing null byte).
 
@@ -2447,63 +2455,63 @@ code, and the attribute value.
 \simplerule[\textwidth]
 \begin{center}
 \autocols[0pt]{c}{2}{l}{
-\livelink{chap:DWATname}{DW\_AT\_name},
-\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility},
-\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class},
-\livelink{chap:DWATallocated}{DW\_AT\_allocated},
-\livelink{chap:DWATartificial}{DW\_AT\_artificial},
-\livelink{chap:DWATassociated}{DW\_AT\_associated},
-\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale},
-\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset},
-\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size},
-\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride},
-\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size},
-\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride},
-\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr},
-\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value},
-\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type},
-\livelink{chap:DWATcount}{DW\_AT\_count},
-\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset},
-\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location},
-\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location},
-\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale},
-\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign},
-\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value},
-\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count},
-\livelink{chap:DWATdiscr}{DW\_AT\_discr},
-\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list},
-\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value},
-\livelink{chap:DWATencoding}{DW\_AT\_encoding},
-\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class},
-\livelink{chap:DWATendianity}{DW\_AT\_endianity},
-\livelink{chap:DWATexplicit}{DW\_AT\_explicit},
-\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional},
-\livelink{chap:DWATlocation}{DW\_AT\_location},
-\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound},
-\livelink{chap:DWATmutable}{DW\_AT\_mutable},
-\livelink{chap:DWATordering}{DW\_AT\_ordering},
-\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string},
-\livelink{chap:DWATprototyped}{DW\_AT\_prototyped},
-\livelink{chap:DWATsmall}{DW\_AT\_small},
-\livelink{chap:DWATsegment}{DW\_AT\_segment},
-\livelink{chap:DWATstringlength}{DW\_AT\_string\_length},
-\livelink{chap:DWATstringlengthbitsize}{DW\_AT\_string\_length\_bit\_size},
-\livelink{chap:DWATstringlengthbytesize}{DW\_AT\_string\_length\_byte\_size},
-\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled},
-\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound},
-\livelink{chap:DWATuselocation}{DW\_AT\_use\_location},
-\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8},
-\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter},
-\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality},
-\livelink{chap:DWATvisibility}{DW\_AT\_visibility},
-\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}
+\DWATname,
+\DWATaccessibility,
+\DWATaddressclass,
+\DWATallocated,
+\DWATartificial,
+\DWATassociated,
+\DWATbinaryscale,
+\DWATbitoffset,
+\DWATbitsize,
+\DWATbitstride,
+\DWATbytesize,
+\DWATbytestride,
+\DWATconstexpr,
+\DWATconstvalue,
+\DWATcontainingtype,
+\DWATcount,
+\DWATdatabitoffset,
+\DWATdatalocation,
+\DWATdatamemberlocation,
+\DWATdecimalscale,
+\DWATdecimalsign,
+\DWATdefaultvalue,
+\DWATdigitcount,
+\DWATdiscr,
+\DWATdiscrlist,
+\DWATdiscrvalue,
+\DWATencoding,
+\DWATenumclass,
+\DWATendianity,
+\DWATexplicit,
+\DWATisoptional,
+\DWATlocation,
+\DWATlowerbound,
+\DWATmutable,
+\DWATordering,
+\DWATpicturestring,
+\DWATprototyped,
+\DWATsmall,
+\DWATsegment,
+\DWATstringlength,
+\DWATstringlengthbitsize,
+\DWATstringlengthbytesize,
+\DWATthreadsscaled,
+\DWATupperbound,
+\DWATuselocation,
+\DWATuseUTFeight,
+\DWATvariableparameter,
+\DWATvirtuality,
+\DWATvisibility,
+\DWATvtableelemlocation
 }
 \end{center}
 \simplerule[\textwidth]
 \end{table}
 
 Note that except for the initial 
-\livelink{chap:DWATname}{DW\_AT\_name} attribute,
+\DWATname{} attribute,
 \addtoindexx{name attribute}
 attributes are appended in order according to the alphabetical
 spelling of their identifier.
@@ -2525,37 +2533,37 @@ the value consists of the form code (encoded as an unsigned
 LEB128 value) followed by the encoding of the value according
 to the form code. To ensure reproducibility of the signature,
 the set of forms used in the signature computation is limited
-to the following: \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata}
-\livelink{chap:DWFORMflag}{DW\_FORM\_flag}
-\livelink{chap:DWFORMstring}{DW\_FORM\_string},
-and \livelink{chap:DWFORMblock}{DW\_FORM\_block}.
-
-\item If the tag in Step 3 is one of \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type},
-\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}
-\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type},
-\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}
-or \livelink{chap:DWTAGfriend}{DW\_TAG\_friend}, and the referenced
-type (via the \livelink{chap:DWATtype}{DW\_AT\_type} or 
-\livelink{chap:DWATfriend}{DW\_AT\_friend} attribute) has a
-\livelink{chap:DWATname}{DW\_AT\_name} attribute, append to S the letter 'N', the DWARF
-attribute code (\livelink{chap:DWATtype}{DW\_AT\_type} or 
-\livelink{chap:DWATfriend}{DW\_AT\_friend}), the context of
+to the following: \DWFORMsdata
+\DWFORMflag
+\DWFORMstring,
+and \DWFORMblock.
+
+\item If the tag in Step 3 is one of \DWTAGpointertype,
+\DWTAGreferencetype
+\DWTAGrvaluereferencetype,
+\DWTAGptrtomembertype
+or \DWTAGfriend, and the referenced
+type (via the \DWATtype{} or 
+\DWATfriend{} attribute) has a
+\DWATname{} attribute, append to S the letter 'N', the DWARF
+attribute code (\DWATtype{} or 
+\DWATfriend), the context of
 the type (according to the method in Step 2), the letter 'E',
-and the name of the type. For \livelink{chap:DWTAGfriend}{DW\_TAG\_friend}, if the referenced
-entry is a \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}, the context is omitted and the
+and the name of the type. For \DWTAGfriend, if the referenced
+entry is a \DWTAGsubprogram, the context is omitted and the
 name to be used is the ABI-specific name of the subprogram
 (e.g., the mangled linker name).
 
 
-\item If the tag in Step 3 is not one of \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type},
-\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}
-\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type},
-\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}, or 
-\livelink{chap:DWTAGfriend}{DW\_TAG\_friend}, but has
-a \livelink{chap:DWATtype}{DW\_AT\_type} attribute, or if the referenced type (via
-the \livelink{chap:DWATtype}{DW\_AT\_type} or 
-\livelink{chap:DWATfriend}{DW\_AT\_friend} attribute) does not have a
-\livelink{chap:DWATname}{DW\_AT\_name} attribute, the attribute is processed according to
+\item If the tag in Step 3 is not one of \DWTAGpointertype,
+\DWTAGreferencetype
+\DWTAGrvaluereferencetype,
+\DWTAGptrtomembertype, or 
+\DWTAGfriend, but has
+a \DWATtype{} attribute, or if the referenced type (via
+the \DWATtype{} or 
+\DWATfriend{} attribute) does not have a
+\DWATname{} attribute, the attribute is processed according to
 the method in Step 4 for an attribute that refers to another
 type entry.
 
@@ -2563,7 +2571,7 @@ type entry.
 \item Visit each child C of the debugging information
 entry as follows: If C is a nested type entry or a member
 function entry, and has 
-a \livelink{chap:DWATname}{DW\_AT\_name} attribute, append to
+a \DWATname{} attribute, append to
 \addtoindexx{name attribute}
 S the letter 'S', the tag of C, and its name; otherwise,
 process C recursively by performing Steps 3 through 7,
@@ -2575,10 +2583,10 @@ there are no children), append a zero byte.
 
 For the purposes of this algorithm, if a debugging information
 entry S has a 
-\livelink{chap:DWATspecification}{DW\_AT\_specification
+\DWATspecification{
 attribute that refers to
 another entry D (which has a 
-\livelink{chap:DWATdeclaration}{DW\_AT\_declaration
+\DWATdeclaration{
 attribute),
 then S inherits the attributes and children of D, and S is
 processed as if those attributes and children were present in
@@ -2635,7 +2643,7 @@ if any of the following apply:}
 
 \item \textit{The entry has an attribute whose value is a location
 expression, and the location expression contains a reference to
-another debugging information entry (e.g., a \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}
+another debugging information entry (e.g., a \DWOPcallref{}
 operator), as it is unlikely that the entry will remain
 identical across compilation units.}
 
@@ -2652,26 +2660,26 @@ a type.}
 \textit{Certain attributes are not included in the type signature:}
 
 \begin{itemize}
-\item \textit{The \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} attribute is not included because it
+\item \textit{The \DWATdeclaration{} attribute is not included because it
 indicates that the debugging information entry represents an
 incomplete declaration, and incomplete declarations should
 not be placed in 
 \addtoindexx{type unit}
 separate type units.}
 
-\item \textit{The \livelink{chap:DWATdescription}{DW\_AT\_description} attribute is not included because
+\item \textit{The \DWATdescription{} attribute is not included because
 it does not provide any information unique to the defining
 declaration of the type.}
 
-\item \textit{The \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}
-\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}, and
-\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column} attributes are not included because they
+\item \textit{The \DWATdeclfile
+\DWATdeclline, and
+\DWATdeclcolumn{} attributes are not included because they
 may vary from one source file to the next, and would prevent
 two otherwise identical type declarations from producing the
 \addtoindexx{MD5 hash}
 same hash.}
 
-\item \textit{The \livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer} attribute is not included 
+\item \textit{The \DWATobjectpointer{} attribute is not included 
 because the information it provides is not necessary for the 
 computation of a unique type signature.}
 
index e20fd11..fab86e6 100644 (file)
@@ -100,13 +100,13 @@ section of the abbreviations for that compilation unit.
 %d
 \item  \dotdebuginfo{} and \dotdebugtypes{} \\
 Attribute values of class string may have form 
-\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}, whose
+\DWFORMstrp, whose
 value is the offset in the \dotdebugstr{}
 section of the corresponding string.
 
 %e
 \item \dotdebugloc{} \\
-The operand of the \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref
+The operand of the \DWOPcallref{
 DWARF expression operator is the
 offset of a debugging information entry in the 
 \dotdebuginfo{} section.
@@ -115,7 +115,7 @@ offset of a debugging information entry in the
 \item \dotdebuginfo{} \\
 An attribute value of class \livelink{chap:classloclistptr}{loclistptr} 
 (specifically form
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
+\DWFORMsecoffset
 is an offset within the \dotdebugloc{} 
 section of a
 \addtoindex{location list}.
@@ -124,7 +124,7 @@ section of a
 \item \dotdebuginfo{} \\
 An attribute value of class \livelink{chap:classrangelistptr}{rangelistptr} 
 (specifically form
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
+\DWFORMsecoffset
 is an offset within the \dotdebugranges{} section of
 a range list.
 
@@ -132,7 +132,7 @@ a range list.
 \item \dotdebuginfo{} \\
 An attribute value of class 
 \livelink{chap:classmacptr}{macptr} (specifically form
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}) is an 
+\DWFORMsecoffset) is an 
 offset within the 
 \dotdebugmacinfo{} section
 of the beginning of the macro information for the referencing unit.
@@ -141,7 +141,7 @@ of the beginning of the macro information for the referencing unit.
 \item \dotdebuginfo{} \\
 An attribute value of class 
 \livelink{chap:classlineptr}{lineptr} (specifically form
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
+\DWFORMsecoffset
 is an offset in the 
 \dotdebugline{} section of the
 beginning of the line number information for the referencing unit.
index 2d960f0..ce57556 100644 (file)
@@ -3,7 +3,7 @@
 % If draft is in the document class list, pix are just suggested
 % by an outline, the pic does not appear as a picture.
 %
-\newcommand{\docdate}{October 2, 2013}
+\newcommand{\docdate}{October 10, 2013}
 %
 \usepackage{ifthen}
 \newboolean{isdraft}
index 37e53e5..81129ee 100644 (file)
@@ -9,7 +9,7 @@
        \expandafter\def\csname #1LINK\endcsname{\index{#2}\hyperlink{chap:#1}{#2}}
        \expandafter\def\csname #1TARG\endcsname{\index{#2}\hypertarget{chap:#1}{#2}}
        \expandafter\def\csname #1INDX\endcsname{\index{#2}#2}
-       \expandafter\def\csname #1MARK\endcsname{\hypertarget{chap:#1}{}}       
+       \expandafter\def\csname #1MARK\endcsname{\hypertarget{chap:#1}{}\index{#2}}     
        \expandafter\def\csname #1NAME\endcsname{#2}
        % The normal, most common use in running text...
        \expandafter\def\csname #1\endcsname{\csname #1LINK\endcsname}
@@ -48,7 +48,7 @@
 \newdwfnamecommands{DWATcallfile}{DW\_AT\_call\_file}
 \newdwfnamecommands{DWATcallline}{DW\_AT\_call\_line}
 \newdwfnamecommands{DWATcallingconvention}{DW\_AT\_calling\_convention}
-\newdwfnamecommands{DWATcommonreference}{DW\_at\_common\_reference}
+\newdwfnamecommands{DWATcommonreference}{DW\_AT\_common\_reference}
 \newdwfnamecommands{DWATcompdir}{DW\_AT\_comp\_dir}
 \newdwfnamecommands{DWATconstexpr}{DW\_AT\_const\_expr}
 \newdwfnamecommands{DWATconstvalue}{DW\_AT\_const\_value}
 \newdwfnamecommands{DWATEimaginaryfloat}{DW\_ATE\_imaginary\_float}
 \newdwfnamecommands{DWATElouser}{DW\_ATE\_lo\_user}
 \newdwfnamecommands{DWATEnumericstring}{DW\_ATE\_numeric\_string}
-\newdwfnamecommands{DWATEpackeddecimal}{DWATE\_packed\_decimal}
+\newdwfnamecommands{DWATEpackeddecimal}{DW\_ATE\_packed\_decimal}
 \newdwfnamecommands{DWATEsigned}{DW\_ATE\_signed}
 \newdwfnamecommands{DWATEsignedchar}{DW\_ATE\_signed\_char}
 \newdwfnamecommands{DWATEsignedfixed}{DW\_ATE\_signed\_fixed}
 \newdwfnamecommands{DWOPand}{DW\_OP\_and}
 \newdwfnamecommands{DWOPbitpiece}{DW\_OP\_bit\_piece}
 \newdwfnamecommands{DWOPbra}{DW\_OP\_bra}
-\newdwfnamecommands{DWOPbreg}{DW\_OP\_breg}                                                    % Generic name
 \newdwfnamecommands{DWOPbregn}{DW\_OP\_breg\textit{n}}                                                 % Generic name
 \newdwfnamecommands{DWOPbregzero}{DW\_OP\_breg0}
 \newdwfnamecommands{DWOPbregone}{DW\_OP\_breg1}
 \newdwfnamecommands{DWOPbregthirtyone}{DW\_OP\_breg31}
-    \newcommand{\DWOPbregtwo}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg2}}               % Link, don't index...
+       \newcommand{\DWOPbregtwo}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg2}}            % Link, don't index...
        \newcommand{\DWOPbregthree}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg3}}          %
        \newcommand{\DWOPbregfour}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg4}}           %
        \newcommand{\DWOPbregeleven}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg11}}        %
 \newdwfnamecommands{DWOPregn}{DW\_OP\_reg\textit{n}}                                           % Generic register name
 \newdwfnamecommands{DWOPregzero}{DW\_OP\_reg0}
 \newdwfnamecommands{DWOPregone}{DW\_OP\_reg1}
-       \newcommand{\DWOPregtwo}{\hyperlink{DWOPregn}{DW\_OP\_reg2}}                    % Link, don't index
-       \newcommand{\DWOPregthree}{\hyperlink{DWOPregn}{DW\_OP\_reg3}}
-       \newcommand{\DWOPregten}{\hyperlink{DWOPregn}{DW\_OP\_reg10}}
+       \newcommand{\DWOPregtwo}{\hyperlink{chap:DWOPregn}{DW\_OP\_reg2}}                       % Link, don't index
+       \newcommand{\DWOPregthree}{\hyperlink{chap:DWOPregn}{DW\_OP\_reg3}}
+       \newcommand{\DWOPregten}{\hyperlink{chap:DWOPregn}{DW\_OP\_reg10}}
 \newdwfnamecommands{DWOPregthirtyone}{DW\_OP\_reg31}
 \newdwfnamecommands{DWOPregx}{DW\_OP\_regx}
 \newdwfnamecommands{DWOProt}{DW\_OP\_rot}
index 5869c73..e118105 100644 (file)
@@ -86,16 +86,16 @@ Compilation Unit \#1: \dotdebuginfo{}
 "myfile.c"
 "Best Compiler Corp, V1.3"
 "/home/mydir/src"
-\livelink{chap:DWLANGC89}{DW\_LANG\_C89}
+\DWLANGCeightynine
 0x0
 0x55
-\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
+\DWFORMsecoffset
 0x0
 \vspace{0.01cm}
 \hrule
 2
 "char"
-\livelink{chap:DWATEunsignedchar}{DW\_ATE\_unsigned\_char}
+\DWATEunsignedchar
 1
 \vspace{0.01cm}
 \hrule
@@ -160,39 +160,39 @@ Abbreviation Table: \dotdebugabbrev{}
 \scriptsize
 \begin{alltt}\vspace{0.06cm}
 1
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
-\livelink{chap:DWCHILDRENyes}{DW\_CHILDREN\_yes}
-\livelink{chap:DWATname}{DW\_AT\_name}       \livelink{chap:DWFORMstring}{DW\_FORM\_string}
-\livelink{chap:DWATproducer}{DW\_AT\_producer}   \livelink{chap:DWFORMstring}{DW\_FORM\_string}
-\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir}   \livelink{chap:DWFORMstring}{DW\_FORM\_string}
-\livelink{chap:DWATlanguage}{DW\_AT\_language}   \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
-\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}     \livelink{chap:DWFORMaddr}{DW\_FORM\_addr}
-\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}    \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
-\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list}  \livelink{chap:DWFORMindirect}{DW\_FORM\_indirect}
+\DWTAGcompileunit
+\DWCHILDRENyes
+\DWATname       \DWFORMstring
+\DWATproducer   \DWFORMstring
+\DWATcompdir   \DWFORMstring
+\DWATlanguage   \DWFORMdataone
+\DWATlowpc     \DWFORMaddr
+\DWAThighpc    \DWFORMdataone
+\DWATstmtlist  \DWFORMindirect
 0
 \vspace{0.01cm}
 \hrule
 2
-\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}
-\livelink{chap:DWATname}{DW\_AT\_name}       \livelink{chap:DWFORMstring}{DW\_FORM\_string}
-\livelink{chap:DWATencoding}{DW\_AT\_encoding}   \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
-\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}  \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
+\DWTAGbasetype
+\DWCHILDRENno
+\DWATname       \DWFORMstring
+\DWATencoding   \DWFORMdataone
+\DWATbytesize  \DWFORMdataone
 0
 \vspace{0.01cm}
 \hrule
 3
-\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
-\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}
-\livelink{chap:DWATtype}{DW\_AT\_type}       \livelink{chap:DWFORMref4}{DW\_FORM\_ref4}
+\DWTAGpointertype
+\DWCHILDRENno
+\DWATtype       \DWFORMreffour
 0
 \vspace{0.01cm}
 \hrule
 4
-\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef}
-\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}
-\livelink{chap:DWATname}{DW\_AT\_name}      \livelink{chap:DWFORMstring}{DW\_FORM\_string}
-\livelink{chap:DWATtype}{DW\_AT\_type}      \livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}
+\DWTAGtypedef
+\DWCHILDRENno
+\DWATname      \DWFORMstring
+\DWATtype      \DWFORMrefaddr
 0
 \vspace{0.01cm}
 \hrule
@@ -304,15 +304,15 @@ that can be the object).
 
 If an object has a descriptor, then the DWARF type for that
 object will have a 
-\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location
+\DWATdatalocation{
 attribute. If an object
 does not have a descriptor, then usually the DWARF type for the
 object will not have a 
-\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}
+\DWATdatalocation
 (See the following
 \addtoindex{Ada} example for a case where the type for an object without
 a descriptor does have a 
-\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} attribute. In
+\DWATdatalocation{} attribute. In
 that case the object doubles as its own descriptor.)
 
 The \addtoindex{Fortran} derived type \texttt{array\_ptr} can now be redescribed
@@ -351,38 +351,38 @@ in Figure \refersec{fig:fortranarrayexampledwarfdescription}.
 \begin{alltt}
 ! Description for type of 'ap'
 !
-1\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+1\$: \DWTAGarraytype
         ! No name, default (Fortran) ordering, default stride
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to REAL)
-        \livelink{chap:DWATassociated}{DW\_AT\_associated}(expression= ! Test 'ptr\_assoc' \nolink{flag}
-            \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+        \DWATtype(reference to REAL)
+        \DWATassociated(expression= ! Test 'ptr\_assoc' \nolink{flag}
+            \DWOPpushobjectaddress
             \DWOPlitn              ! where n == offset(ptr\_assoc)
-            \livelink{chap:DWOPplus}{DW\_OP\_plus}
-            \livelink{chap:DWOPderef}{DW\_OP\_deref}
-            \livelink{chap:DWOPlit1}{DW\_OP\_lit1}              ! mask for 'ptr\_assoc' \nolink{flag}
-            \livelink{chap:DWOPand}{DW\_OP\_and})
-        \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}(expression= ! Get raw data address
-            \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+            \DWOPplus
+            \DWOPderef
+            \DWOPlitone              ! mask for 'ptr\_assoc' \nolink{flag}
+            \DWOPand)
+        \DWATdatalocation(expression= ! Get raw data address
+            \DWOPpushobjectaddress
             \DWOPlitn              ! where n == offset(base)
-            \livelink{chap:DWOPplus}{DW\_OP\_plus}
-            \livelink{chap:DWOPderef}{DW\_OP\_deref})            ! Type of index of array 'ap'
-2\$:     \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+            \DWOPplus
+            \DWOPderef)            ! Type of index of array 'ap'
+2\$:     \DWTAGsubrangetype
             ! No name, default stride
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-            \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(expression=
-                \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+            \DWATtype(reference to INTEGER)
+            \DWATlowerbound(expression=
+                \DWOPpushobjectaddress
                 \DWOPlitn          ! where n ==
                                     !   offset(desc, dims) +
                                     !   offset(dims\_str, lower\_bound)
-                \livelink{chap:DWOPplus}{DW\_OP\_plus}
-                \livelink{chap:DWOPderef}{DW\_OP\_deref})
-            \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(expression=
-                \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+                \DWOPplus
+                \DWOPderef)
+            \DWATupperbound(expression=
+                \DWOPpushobjectaddress
                 \DWOPlitn          ! where n ==
                                     !   offset(desc, dims) +
                                     !   offset(dims\_str, upper\_bound)
-                \livelink{chap:DWOPplus}{DW\_OP\_plus}
-                \livelink{chap:DWOPderef}{DW\_OP\_deref})
+                \DWOPplus
+                \DWOPderef)
             !  Note: for the m'th dimension, the second operator becomes
             !  \DWOPlitn where
             !       n == offset(desc, dims)          +
@@ -400,49 +400,49 @@ in Figure \refersec{fig:fortranarrayexampledwarfdescription}.
 \figurepart{2}{2}
 \begin{dwflisting}
 \begin{alltt}
-3\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("array\_ptr")
-        \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(constant sizeof(REAL) + sizeof(desc<1>))
-4\$:     \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("myvar")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to REAL)
-            \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(constant 0)
-5\$:     \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("ap");
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-            \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(constant sizeof(REAL))
-6\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+3\$: \DWTAGstructuretype
+        \DWATname("array\_ptr")
+        \DWATbytesize(constant sizeof(REAL) + sizeof(desc<1>))
+4\$:     \DWTAGmember
+            \DWATname("myvar")
+            \DWATtype(reference to REAL)
+            \DWATdatamemberlocation(constant 0)
+5\$:     \DWTAGmember
+            \DWATname("ap");
+            \DWATtype(reference to 1\$)
+            \DWATdatamemberlocation(constant sizeof(REAL))
+6\$: \DWTAGarraytype
         ! No name, default (Fortran) ordering, default stride
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
-        \livelink{chap:DWATallocated}{DW\_AT\_allocated}(expression=     ! Test 'ptr\_alloc' \nolink{flag}
-            \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+        \DWATtype(reference to 3\$)
+        \DWATallocated(expression=     ! Test 'ptr\_alloc' \nolink{flag}
+            \DWOPpushobjectaddress
             \DWOPlitn                  ! where n == offset(ptr\_alloc)
-            \livelink{chap:DWOPplus}{DW\_OP\_plus}
-            \livelink{chap:DWOPderef}{DW\_OP\_deref}
+            \DWOPplus
+            \DWOPderef
             \DWOPlittwo                  ! Mask for 'ptr\_alloc' \nolink{flag}
-            \livelink{chap:DWOPand}{DW\_OP\_and})
-        \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}(expression= ! Get raw data address
-            \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+            \DWOPand)
+        \DWATdatalocation(expression= ! Get raw data address
+            \DWOPpushobjectaddress
             \DWOPlitn                  ! where n == offset(base)
-            \livelink{chap:DWOPplus}{DW\_OP\_plus}
-            \livelink{chap:DWOPderef}{DW\_OP\_deref})
-7\$:     \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+            \DWOPplus
+            \DWOPderef)
+7\$:     \DWTAGsubrangetype
             ! No name, default stride
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-            \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(expression=
-                \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+            \DWATtype(reference to INTEGER)
+            \DWATlowerbound(expression=
+                \DWOPpushobjectaddress
                 \DWOPlitn              ! where n == ...
-                \livelink{chap:DWOPplus}{DW\_OP\_plus}
-                \livelink{chap:DWOPderef}{DW\_OP\_deref})
-            \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(expression=
-                \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+                \DWOPplus
+                \DWOPderef)
+            \DWATupperbound(expression=
+                \DWOPpushobjectaddress
                 \DWOPlitn              ! where n == ...
-                \livelink{chap:DWOPplus}{DW\_OP\_plus}
-                \livelink{chap:DWOPderef}{DW\_OP\_deref})
-8\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("arrayvar")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 6\$)
-        \livelink{chap:DWATlocation}{DW\_AT\_location}(expression=
+                \DWOPplus
+                \DWOPderef)
+8\$: \DWTAGvariable
+        \DWATname("arrayvar")
+        \DWATtype(reference to 6\$)
+        \DWATlocation(expression=
             ...as appropriate...)       ! Assume static allocation
 \end{alltt}
 \end{dwflisting}
@@ -486,24 +486,24 @@ bound too, but we will skip that for this example. \rbrack
 \end{enumerate}
 
 For a), check for a 
-\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} attribute. 
+\DWATdatalocation{} attribute. 
 Since there is one, go execute the expression, whose result is
 the address needed. The object address used in this case
 is the object we are working on, namely the variable named
 \texttt{arrayvar}, whose address was found in step 1. (Had there been
-no \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} attribute, the desired address would
+no \DWATdatalocation{} attribute, the desired address would
 be the same as the address from step 1.)
 
 For b), for each dimension of the array (only one
 in this case), go interpret the usual lower bound
 attribute. Again this is an expression, which again begins
-with \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}. This object is 
+with \DWOPpushobjectaddress. This object is 
 \textbf{still} \texttt{arrayvar},
 from step 1, because we have not begun to actually perform
 any indexing yet.
 
 For c), the default stride applies. Since there is no
-\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride} attribute, use the size of the array element
+\DWATbytestride{} attribute, use the size of the array element
 type, which is the size of type \texttt{array\_ptr} (at 3\$).
 
 \clearpage
@@ -541,10 +541,10 @@ bound too, but we will skip that for this example \rbrack
 \end{enumerate}
 
 This is just like step 2), so the details are omitted. Recall
-that because the DWARF type 1\$ has a \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location},
+that because the DWARF type 1\$ has a \DWATdatalocation,
 the address that results from step 4) is that of a
 descriptor, and that address is the address pushed by the
-\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address} operations in 1\$ and 2\$.
+\DWOPpushobjectaddress{} operations in 1\$ and 2\$.
 
 Note: we happen to be accessing a pointer array here instead
 of an allocatable array; but because there is a common
@@ -769,7 +769,7 @@ Figure~\refersec{fig:assumedrankdwarf}.
              \DWATbytestride(expression=
              !   Looks up the byte stride of dimension i.
                  ...
-             !   (analogous to DW\_AT\_upper\_bound)
+             !   (analogous to \DWATupperboundNAME)
                  )
 \end{alltt}
 \end{dwflisting}
@@ -780,7 +780,7 @@ Figure~\refersec{fig:assumedrankdwarf}.
 The layout of the array descriptor is not specified by the Fortran
 standard unless the array is explicitly marked as \addtoindex{C-interoperable}. To
 get the bounds of an assumed-rank array, the expressions in the
-\DWTAGgenericsubrange
+\DWTAGgenericsubrange{}
 entry need to be evaluated for each of the
 \DWATrank{} dimensions as shown by the pseudocode in
 Figure~\refersec{fig:assumedrankdwarfparser}.
@@ -884,7 +884,7 @@ Interesting aspects about this example are:
 \begin{enumerate}[1. ]
 \item The array \texttt{VEC2} is \doublequote{immediately} contained within structure
 \texttt{REC2} (there is no intermediate descriptor or indirection),
-which is reflected in the absence of a \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}
+which is reflected in the absence of a \DWATdatalocation{}
 attribute on the array type at 28\$.
 
 \item One of the bounds of \texttt{VEC2} is nonetheless dynamic and part of
@@ -909,51 +909,51 @@ of this example and therefore is not shown.
 \begin{figure}[p]
 \begin{dwflisting}
 \begin{alltt}
-11\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("M")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-12\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+11\$: \DWTAGvariable
+        \DWATname("M")
+        \DWATtype(reference to INTEGER)
+12\$: \DWTAGarraytype
         ! No name, default (\addtoindex{Ada}) order, default stride
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-13\$:    \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-            \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
-            \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(reference to variable M at 11\$)
-14\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("VEC1")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to array type at 12\$)
+        \DWATtype(reference to INTEGER)
+13\$:    \DWTAGsubrangetype
+            \DWATtype(reference to INTEGER)
+            \DWATlowerbound(constant 1)
+            \DWATupperbound(reference to variable M at 11\$)
+14\$: \DWTAGvariable
+        \DWATname("VEC1")
+        \DWATtype(reference to array type at 12\$)
      . . .
-21\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("TEENY")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-        \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
-        \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(constant 100)
+21\$: \DWTAGsubrangetype
+        \DWATname("TEENY")
+        \DWATtype(reference to INTEGER)
+        \DWATlowerbound(constant 1)
+        \DWATupperbound(constant 100)
      . . .
-26\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("REC2")
-27\$:    \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("N")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to subtype TEENY at 21\$)
-            \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(constant 0)
-28\$:    \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+26\$: \DWTAGstructuretype
+        \DWATname("REC2")
+27\$:    \DWTAGmember
+            \DWATname("N")
+            \DWATtype(reference to subtype TEENY at 21\$)
+            \DWATdatamemberlocation(constant 0)
+28\$:    \DWTAGarraytype
             ! No name, default (\addtoindex{Ada}) order, default stride
             ! Default data location
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
-29\$:        \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to subrange TEENY at 21\$)
-                \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
-                \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(reference to member N at 27\$)
-30\$:    \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("VEC2")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to array "subtype" at 28\$)
-            \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(machine=
+            \DWATtype(reference to INTEGER)
+29\$:        \DWTAGsubrangetype
+                \DWATtype(reference to subrange TEENY at 21\$)
+                \DWATlowerbound(constant 1)
+                \DWATupperbound(reference to member N at 27\$)
+30\$:    \DWTAGmember
+            \DWATname("VEC2")
+            \DWATtype(reference to array "subtype" at 28\$)
+            \DWATdatamemberlocation(machine=
                 \DWOPlitn                  ! where n == offset(REC2, VEC2)
-                \livelink{chap:DWOPplus}{DW\_OP\_plus})
+                \DWOPplus)
      . . .
-41\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("OBJ2B")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to REC2 at 26\$)
-        \livelink{chap:DWATlocation}{DW\_AT\_location}(...as appropriate...)
+41\$: \DWTAGvariable
+        \DWATname("OBJ2B")
+        \DWATtype(reference to REC2 at 26\$)
+        \DWATlocation(...as appropriate...)
 \end{alltt}
 \end{dwflisting}
 \caption{Ada example: DWARF description}
@@ -991,7 +991,7 @@ VAR V :  PACKED RECORD
 The DWARF representation in 
 Figure \refersec{fig:packedrecordexampledwarfdescription} 
 is appropriate. 
-\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type} entries could be added to
+\DWTAGpackedtype{} entries could be added to
 better represent the source, but these do not otherwise affect
 the example and are omitted for clarity. Note that this same
 representation applies to both typical big\dash \ and 
@@ -1003,54 +1003,54 @@ Section \refersec{chap:datamemberentries}.
 \figurepart{1}{2}
 \begin{dwflisting}
 \begin{alltt}
-10\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("BOOLEAN")
+10\$: \DWTAGbasetype
+        \DWATname("BOOLEAN")
             ...
-11\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("INTEGER")
+11\$: \DWTAGbasetype
+        \DWATname("INTEGER")
             ...
-20\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("T")
-        \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(2)
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F5")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 10$)
-            \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(0)        ! may be omitted
-            \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(1)
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F6")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 10$)
-            \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(1)
-            \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(1)
-21\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}                  ! anonymous type for F2
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F3")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
-22\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}                      ! anonymous type for F4
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 20\$)
-        \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
-            \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(0)
-            \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(1)
-        \livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}(2)
-        \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(4) \addtoindexx{bit size attribute}
-23\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}                  ! anonymous type for V
-        \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(39) \addtoindexx{bit size attribute}
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F1")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 10\$)
-            \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(0)        ! may be omitted
-            \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(1) ! may be omitted
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F2")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 21\$)
-            \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(1)
-            \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(32) ! may be omitted
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F4")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 22\$)
-            \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(33)
-            \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(4) ! may be omitted
+20\$: \DWTAGstructuretype
+        \DWATname("T")
+        \DWATbitsize(2)
+        \DWTAGmember
+            \DWATname("F5")
+            \DWATtype(reference to 10$)
+            \DWATdatabitoffset(0)        ! may be omitted
+            \DWATbitsize(1)
+        \DWTAGmember
+            \DWATname("F6")
+            \DWATtype(reference to 10$)
+            \DWATdatabitoffset(1)
+            \DWATbitsize(1)
+21\$: \DWTAGstructuretype                  ! anonymous type for F2
+        \DWTAGmember
+            \DWATname("F3")
+            \DWATtype(reference to 11\$)
+22\$: \DWTAGarraytype                      ! anonymous type for F4
+        \DWATtype(reference to 20\$)
+        \DWTAGsubrangetype
+            \DWATtype(reference to 11\$)
+            \DWATlowerbound(0)
+            \DWATupperbound(1)
+        \DWATbitstride(2)
+        \DWATbitsize(4) \addtoindexx{bit size attribute}
+23\$: \DWTAGstructuretype                  ! anonymous type for V
+        \DWATbitsize(39) \addtoindexx{bit size attribute}
+        \DWTAGmember
+            \DWATname("F1")
+            \DWATtype(reference to 10\$)
+            \DWATdatabitoffset(0)        ! may be omitted
+            \DWATbitsize(1) ! may be omitted
+        \DWTAGmember
+            \DWATname("F2")
+            \DWATtype(reference to 21\$)
+            \DWATdatabitoffset(1)
+            \DWATbitsize(32) ! may be omitted
+        \DWTAGmember
+            \DWATname("F4")
+            \DWATtype(reference to 22\$)
+            \DWATdatabitoffset(33)
+            \DWATbitsize(4) ! may be omitted
 \end{alltt}
 \end{dwflisting}
 \caption{Packed record example: DWARF description}
@@ -1061,15 +1061,15 @@ Section \refersec{chap:datamemberentries}.
 \figurepart{2}{2}
 \begin{dwflisting}
 \begin{alltt}
-        \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("F7")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 20\$)    ! type T
-            \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(37)
-            \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(2) \addtoindexx{bit size attribute}              ! may be omitted
-     \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("V")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 23\$)
-        \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+        \DWTAGmember
+            \DWATname("F7")
+            \DWATtype(reference to 20\$)    ! type T
+            \DWATdatabitoffset(37)
+            \DWATbitsize(2) \addtoindexx{bit size attribute}              ! may be omitted
+     \DWTAGvariable
+        \DWATname("V")
+        \DWATtype(reference to 23\$)
+        \DWATlocation(...)
         ...
 \end{alltt}
 \end{dwflisting}
@@ -1134,42 +1134,42 @@ int Foo::myfunc(int a)
 \begin{dwflisting}
 \begin{alltt}
 
-1\$:  \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("int")
+1\$:  \DWTAGbasetype
+        \DWATname("int")
         ...
-2\$:  \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("float")
+2\$:  \DWTAGbasetype
+        \DWATname("float")
         ...
-6\$:  \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-        ! no \livelink{chap:DWATname}{DW\_AT\_name} attribute
+6\$:  \DWTAGnamespace
+        ! no \DWATname attribute
 7\$:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("i")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-            \livelink{chap:DWATlocation}{DW\_AT\_location} ...
+        \DWTAGvariable
+            \DWATname("i")
+            \DWATtype(reference to 1\$)
+            \DWATlocation ...
             ...
-10\$: \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-        \livelink{chap:DWATname}{DW\_AT\_name}("A")
-20\$:    \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-            \livelink{chap:DWATname}{DW\_AT\_name}("B")
-30\$:        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-                \livelink{chap:DWATname}{DW\_AT\_name}("j")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-                \livelink{chap:DWATlocation}{DW\_AT\_location} ...
+10\$: \DWTAGnamespace
+        \DWATname("A")
+20\$:    \DWTAGnamespace
+            \DWATname("B")
+30\$:        \DWTAGvariable
+                \DWATname("j")
+                \DWATtype(reference to 1\$)
+                \DWATlocation ...
                 ...
-34\$:        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-                \livelink{chap:DWATname}{DW\_AT\_name}("myfunc")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+34\$:        \DWTAGsubprogram
+                \DWATname("myfunc")
+                \DWATtype(reference to 1\$)
                 ...
-36\$:        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-                \livelink{chap:DWATname}{DW\_AT\_name}("myfunc")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
+36\$:        \DWTAGsubprogram
+                \DWATname("myfunc")
+                \DWATtype(reference to 2\$)
                 ...
-38\$:        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-                \livelink{chap:DWATname}{DW\_AT\_name}("myfunc2")
-                \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} ...
-                \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} ...
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+38\$:        \DWTAGsubprogram
+                \DWATname("myfunc2")
+                \DWATlowpc ...
+                \DWAThighpc ...
+                \DWATtype(reference to 1\$)
                 ...
 \end{alltt}
 \end{dwflisting}
@@ -1181,41 +1181,41 @@ int Foo::myfunc(int a)
 \figurepart{2}{2}
 \begin{dwflisting}
 \begin{alltt}
-40\$: \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-        \livelink{chap:DWATname}{DW\_AT\_name}("Y")
-        \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}            ! (1) using-declaration
-            \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 30\$)
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("foo")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-            \livelink{chap:DWATlocation}{DW\_AT\_location} ...
+40\$: \DWTAGnamespace
+        \DWATname("Y")
+        \DWTAGimporteddeclaration            ! (1) using-declaration
+            \DWATimport(reference to 30\$)
+        \DWTAGvariable
+            \DWATname("foo")
+            \DWATtype(reference to 1\$)
+            \DWATlocation ...
             ...
-     \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}               ! (2) using declaration
-        \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 30\$)
-        \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}            ! (3) namespace alias
-            \livelink{chap:DWATname}{DW\_AT\_name}("Foo")
-            \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 20\$)
-        \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}            ! (4) using declaration
-            \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 34\$)     !     - part 1
-        \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}            ! (4) using declaration
-            \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 36\$)     !     - part 2
-        \livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module}                 ! (5) using directive
-            \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 20\$)
-        \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-            \livelink{chap:DWATextension}{DW\_AT\_extension}(reference to 10\$)
-            \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
-                \livelink{chap:DWATextension}{DW\_AT\_extension}(reference to 20\$)
-                \livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module}         ! (6) using directive
-                    \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 40\$)
-                \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-                    \livelink{chap:DWATname}{DW\_AT\_name}("k")
-                    \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-                    \livelink{chap:DWATlocation}{DW\_AT\_location} ...
+     \DWTAGimporteddeclaration               ! (2) using declaration
+        \DWATimport(reference to 30\$)
+        \DWTAGimporteddeclaration            ! (3) namespace alias
+            \DWATname("Foo")
+            \DWATimport(reference to 20\$)
+        \DWTAGimporteddeclaration            ! (4) using declaration
+            \DWATimport(reference to 34\$)     !     - part 1
+        \DWTAGimporteddeclaration            ! (4) using declaration
+            \DWATimport(reference to 36\$)     !     - part 2
+        \DWTAGimportedmodule                 ! (5) using directive
+            \DWATimport(reference to 20\$)
+        \DWTAGnamespace
+            \DWATextension(reference to 10\$)
+            \DWTAGnamespace
+                \DWATextension(reference to 20\$)
+                \DWTAGimportedmodule         ! (6) using directive
+                    \DWATimport(reference to 40\$)
+                \DWTAGvariable
+                    \DWATname("k")
+                    \DWATtype(reference to 1\$)
+                    \DWATlocation ...
                     ...
-60\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-        \livelink{chap:DWATspecification}{DW\_AT\_specification}(reference to 34\$)
-        \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} ...
-        \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} ...
+60\$: \DWTAGsubprogram
+        \DWATspecification(reference to 34\$)
+        \DWATlowpc ...
+        \DWAThighpc ...
         ...
 \end{alltt}
 \end{dwflisting}
@@ -1251,30 +1251,30 @@ void A::func1(int x) {}
 \figurepart{1}{2}
 \begin{dwflisting}
 \begin{alltt}
-1\$: \livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("void")
+1\$: \DWTAGunspecifiedtype
+        \DWATname("void")
                 ...
-2\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("int")
+2\$: \DWTAGbasetype
+        \DWATname("int")
         ...
-3\$: \livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("A")
+3\$: \DWTAGclasstype
+        \DWATname("A")
         ...
-4\$:    \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
+4\$:    \DWTAGpointertype
+            \DWATtype(reference to 3\$)
             ...
-5\$:    \livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
+5\$:    \DWTAGconsttype
+            \DWATtype(reference to 3\$)
             ...
-6\$:    \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 5\$)
+6\$:    \DWTAGpointertype
+            \DWATtype(reference to 5\$)
             ...
 
-7\$:    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATdeclaration}{DW\_AT\_declaration}
-            \livelink{chap:DWATname}{DW\_AT\_name}("func1")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-            \livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}(reference to 8\$) \addtoindexx{object pointer attribute}
+7\$:    \DWTAGsubprogram
+            \DWATdeclaration
+            \DWATname("func1")
+            \DWATtype(reference to 1\$)
+            \DWATobjectpointer(reference to 8\$) \addtoindexx{object pointer attribute}
                 ! References a formal parameter in this 
                 ! member function
             ...
@@ -1288,45 +1288,45 @@ void A::func1(int x) {}
 \figurepart{2}{2}
 \begin{dwflisting}
 \begin{alltt}
-8\$:        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATartificial}{DW\_AT\_artificial}(true)
-                \livelink{chap:DWATname}{DW\_AT\_name}("this")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 4\$)
+8\$:        \DWTAGformalparameter
+                \DWATartificial(true)
+                \DWATname("this")
+                \DWATtype(reference to 4\$)
                     ! Makes type of 'this' as 'A*' =>
                     ! func1 has not been marked const 
                     ! or volatile
-                \livelink{chap:DWATlocation}{DW\_AT\_location} ...
+                \DWATlocation ...
                 ...
-9\$:        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATname}{DW\_AT\_name}(x1)
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
+9\$:        \DWTAGformalparameter
+                \DWATname(x1)
+                \DWATtype(reference to 2\$)
                 ...
-10\$:    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-             \livelink{chap:DWATdeclaration}{DW\_AT\_declaration}
-             \livelink{chap:DWATname}{DW\_AT\_name}("func2")
-             \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-             \livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}(reference to 11\$) \addtoindexx{object pointer attribute}
+10\$:    \DWTAGsubprogram
+             \DWATdeclaration
+             \DWATname("func2")
+             \DWATtype(reference to 1\$)
+             \DWATobjectpointer(reference to 11\$) \addtoindexx{object pointer attribute}
              ! References a formal parameter in this 
              ! member function
              ...
-11\$:        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                 \livelink{chap:DWATartificial}{DW\_AT\_artificial}(true)
-                 \livelink{chap:DWATname}{DW\_AT\_name}("this")
-                 \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 6\$)
+11\$:        \DWTAGformalparameter
+                 \DWATartificial(true)
+                 \DWATname("this")
+                 \DWATtype(reference to 6\$)
                  ! Makes type of 'this' as 'A const*' =>
                  !     func2 marked as const
-                 \livelink{chap:DWATlocation}{DW\_AT\_location} ...
+                 \DWATlocation ...
                  ...
-12\$:    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-             \livelink{chap:DWATdeclaration}{DW\_AT\_declaration}
-             \livelink{chap:DWATname}{DW\_AT\_name}("func3")
-             \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+12\$:    \DWTAGsubprogram
+             \DWATdeclaration
+             \DWATname("func3")
+             \DWATtype(reference to 1\$)
              ...
                  ! No object pointer reference formal parameter
                  ! implies func3 is static
-13\$:        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                 \livelink{chap:DWATname}{DW\_AT\_name}(x3)
-                 \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
+13\$:        \DWTAGformalparameter
+                 \DWATname(x3)
+                 \DWATtype(reference to 2\$)
                  ...
 \end{alltt}
 \end{dwflisting}
@@ -1408,13 +1408,13 @@ of \textit{n}).
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWLNSadvancepc}{DW\_LNS\_advance\_pc}&LEB128(0x239)&0x2, 0xb9, 0x04 \\
+\DWLNSadvancepc&LEB128(0x239)&0x2, 0xb9, 0x04 \\
 SPECIAL(2, 0)& &0xb  \\
 SPECIAL(2, 3)& &0x38 \\
 SPECIAL(1, 8)& &0x82 \\
 SPECIAL(1, 7)& &0x73 \\
-\livelink{chap:DWLNSadvancepc}{DW\_LNS\_advance\_pc}&LEB128(2)&0x2, 0x2 \\
-\livelink{chap:DWLNEendsequence}{DW\_LNE\_end\_sequence} &&0x0, 0x1, 0x1 \\
+\DWLNSadvancepc&LEB128(2)&0x2, 0x2 \\
+\DWLNEendsequence{} &&0x0, 0x1, 0x1 \\
 \end{longtable}
 \end{centering}
 
@@ -1439,16 +1439,16 @@ this encoding occupies 22 bytes.
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x239&0x9, 0x39, 0x2        \\
+\DWLNSfixedadvancepc&0x239&0x9, 0x39, 0x2        \\
 SPECIAL(2, 0)&& 0xb        \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x3&0x9, 0x3, 0x0        \\
+\DWLNSfixedadvancepc&0x3&0x9, 0x3, 0x0        \\
 SPECIAL(2, 0)&&0xb        \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x8&0x9, 0x8, 0x0        \\
+\DWLNSfixedadvancepc&0x8&0x9, 0x8, 0x0        \\
 SPECIAL(1, 0)&& 0xa        \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x7&0x9, 0x7, 0x0        \\
+\DWLNSfixedadvancepc&0x7&0x9, 0x7, 0x0        \\
 SPECIAL(1, 0) && 0xa        \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x2&0x9, 0x2, 0x0        \\
-\livelink{chap:DWLNEendsequence}{DW\_LNE\_end\_sequence}&&0x0, 0x1, 0x1        \\
+\DWLNSfixedadvancepc&0x2&0x9, 0x2, 0x0        \\
+\DWLNEendsequence&&0x0, 0x1, 0x1        \\
 \end{longtable}
 \end{centering}
 
@@ -1593,19 +1593,19 @@ cie+11&0&segment size    \\
 cie+12&4&code\_alignment\_factor, \textless caf \textgreater    \\
 cie+13&-4&data\_alignment\_factor, \textless daf \textgreater    \\
 cie+14&8&R8 is the return addr.    \\
-cie+15&\livelink{chap:DWCFAdefcfa}{DW\_CFA\_def\_cfa} (7, 0)&CFA = [R7]+0    \\
-cie+18&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (0)&R0 not modified (=0)    \\
-cie+20&\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined} (1)&R1 scratch    \\
-cie+22&\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined} (2)&R2 scratch    \\
-cie+24&\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined} (3)&R3 scratch    \\
-cie+26&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (4)&R4 preserve    \\
-cie+28&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (5)&R5 preserve    \\
-cie+30&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (6)&R6 preserve    \\
-cie+32&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (7)&R7 preserve    \\
-cie+34&\livelink{chap:DWCFAregister}{DW\_CFA\_register} (8, 1)&R8 is in R1    \\
-cie+37&\livelink{chap:DWCFAnop}{DW\_CFA\_nop} &padding    \\
-cie+38&\livelink{chap:DWCFAnop}{DW\_CFA\_nop} &padding \\
-cie+39& \livelink{chap:DWCFAnop}{DW\_CFA\_nop}&padding  \\
+cie+15&\DWCFAdefcfa{} (7, 0)&CFA = [R7]+0    \\
+cie+18&\DWCFAsamevalue{} (0)&R0 not modified (=0)    \\
+cie+20&\DWCFAundefined{} (1)&R1 scratch    \\
+cie+22&\DWCFAundefined{} (2)&R2 scratch    \\
+cie+24&\DWCFAundefined{} (3)&R3 scratch    \\
+cie+26&\DWCFAsamevalue{} (4)&R4 preserve    \\
+cie+28&\DWCFAsamevalue{} (5)&R5 preserve    \\
+cie+30&\DWCFAsamevalue{} (6)&R6 preserve    \\
+cie+32&\DWCFAsamevalue{} (7)&R7 preserve    \\
+cie+34&\DWCFAregister{} (8, 1)&R8 is in R1    \\
+cie+37&\DWCFAnop{} &padding    \\
+cie+38&\DWCFAnop{} &padding \\
+cie+39& \DWCFAnop&padding  \\
 cie+40 &&  \\
 \end{longtable}
 \end{centering}
@@ -1638,27 +1638,27 @@ fde&40&length \\
 fde+4&cie&CIE\_ptr \\
 fde+8&foo&initial\_location \\
 fde+12&84&address\_range \\
-fde+16&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1)&instructions \\
-fde+17&\livelink{chap:DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}(12)& \textless fs\textgreater \\
-fde+19&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1)&4/\textless caf\textgreater \\
-fde+20&\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}(8,1)&-4/\textless daf\textgreater (2nd parameter) \\
-fde+22&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1)& \\
-fde+23&\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}(6,2)&-8/\textless daf\textgreater (2nd parameter)  \\
-fde+25&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
-fde+26&\livelink{chap:DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}(6) & \\
-fde+28&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
-fde+29&\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}(4,3)&-12/\textless daf\textgreater (2nd parameter) \\
-fde+31&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(12)&44/\textless caf\textgreater \\
-fde+32&\livelink{chap:DWCFArestore}{DW\_CFA\_restore}(4)& \\
-fde+33&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
-fde+34&\livelink{chap:DWCFArestore}{DW\_CFA\_restore}(6) & \\
-fde+35&\livelink{chap:DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}(7)  & \\
-fde+37&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
-fde+38&\livelink{chap:DWCFArestore}{DW\_CFA\_restore}(8) &\\
-fde+39&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) &\\
-fde+40&\livelink{chap:DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}(0)  &\\
-fde+42&\livelink{chap:DWCFAnop}{DW\_CFA\_nop}&padding \\
-fde+43&\livelink{chap:DWCFAnop}{DW\_CFA\_nop}&padding \\
+fde+16&\DWCFAadvanceloc(1)&instructions \\
+fde+17&\DWCFAdefcfaoffset(12)& \textless fs\textgreater \\
+fde+19&\DWCFAadvanceloc(1)&4/\textless caf\textgreater \\
+fde+20&\DWCFAoffset(8,1)&-4/\textless daf\textgreater (2nd parameter) \\
+fde+22&\DWCFAadvanceloc(1)& \\
+fde+23&\DWCFAoffset(6,2)&-8/\textless daf\textgreater (2nd parameter)  \\
+fde+25&\DWCFAadvanceloc(1) & \\
+fde+26&\DWCFAdefcfaregister(6) & \\
+fde+28&\DWCFAadvanceloc(1) & \\
+fde+29&\DWCFAoffset(4,3)&-12/\textless daf\textgreater (2nd parameter) \\
+fde+31&\DWCFAadvanceloc(12)&44/\textless caf\textgreater \\
+fde+32&\DWCFArestore(4)& \\
+fde+33&\DWCFAadvanceloc(1) & \\
+fde+34&\DWCFArestore(6) & \\
+fde+35&\DWCFAdefcfaregister(7)  & \\
+fde+37&\DWCFAadvanceloc(1) & \\
+fde+38&\DWCFArestore(8) &\\
+fde+39&\DWCFAadvanceloc(1) &\\
+fde+40&\DWCFAdefcfaoffset(0)  &\\
+fde+42&\DWCFAnop&padding \\
+fde+43&\DWCFAnop&padding \\
 fde+44 && \\
 \end{longtable}
 \end{centering}
@@ -1777,41 +1777,41 @@ Figure \refersec{fig:inliningexample1concreteinstance}.
     ! Abstract instance for OUTER
     ! \addtoindexx{abstract instance!example}
 OUTER.AI.1.1:
-    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-        \livelink{chap:DWATname}{DW\_AT\_name}("OUTER")
-        \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
+    \DWTAGsubprogram
+        \DWATname("OUTER")
+        \DWATinline(\DWINLdeclaredinlined)
         ! No low/high PCs
 OUTER.AI.1.2:
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-            \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_FORMAL")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+        \DWTAGformalparameter
+            \DWATname("OUTER\_FORMAL")
+            \DWATtype(reference to integer)
             ! No location
 OUTER.AI.1.3:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_LOCAL")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+        \DWTAGvariable
+            \DWATname("OUTER\_LOCAL")
+            \DWATtype(reference to integer)
             ! No location
         !
         ! Abstract instance for INNER
         !
 INNER.AI.1.1:
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("INNER")
-            \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
+        \DWTAGsubprogram
+            \DWATname("INNER")
+            \DWATinline(\DWINLdeclaredinlined)
             ! No low/high PCs
 INNER.AI.1.2:
-            \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_FORMAL")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+            \DWTAGformalparameter
+                \DWATname("INNER\_FORMAL")
+                \DWATtype(reference to integer)
                 ! No location
 INNER.AI.1.3:
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-                \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_LOCAL")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+            \DWTAGvariable
+                \DWATname("INNER\_LOCAL")
+                \DWATtype(reference to integer)
                 ! No location
             ...
             0
-        ! No \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine} (concrete instance)
+        ! No \DWTAGinlinedsubroutine (concrete instance)
         ! for INNER corresponding to calls of INNER
         ...
         0
@@ -1827,43 +1827,43 @@ INNER.AI.1.3:
 ! Concrete instance for call "OUTER(7)"
 ! \addtoindexx{concrete instance!example}
 OUTER.CI.1.1:
-    \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+    \DWTAGinlinedsubroutine
         ! No name
-        \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.1.1)
-        \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
-        \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
+        \DWATabstractorigin(reference to OUTER.AI.1.1)
+        \DWATlowpc(...)
+        \DWAThighpc(...)
 OUTER.CI.1.2:
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+        \DWTAGformalparameter
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.1.2)
-            \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(7)
+            \DWATabstractorigin(reference to OUTER.AI.1.2)
+            \DWATconstvalue(7)
 OUTER.CI.1.3:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+        \DWTAGvariable
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.1.3)
-            \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+            \DWATabstractorigin(reference to OUTER.AI.1.3)
+            \DWATlocation(...)
         !
-        ! No \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} (abstract instance) for INNER
+        ! No \DWTAGsubprogram (abstract instance) for INNER
         !
         ! Concrete instance for call INNER(OUTER\_LOCAL)
         !
 INNER.CI.1.1:
-        \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+        \DWTAGinlinedsubroutine
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to INNER.AI.1.1)
-            \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
-            \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
-            \livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}(...)
+            \DWATabstractorigin(reference to INNER.AI.1.1)
+            \DWATlowpc(...)
+            \DWAThighpc(...)
+            \DWATstaticlink(...)
 INNER.CI.1.2:
-            \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+            \DWTAGformalparameter
                 ! No name
-                \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to INNER.AI.1.2)
-                \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+                \DWATabstractorigin(reference to INNER.AI.1.2)
+                \DWATlocation(...)
 INNER.CI.1.3:
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+            \DWTAGvariable
                 ! No name
-                \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to INNER.AI.1.3)
-                \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+                \DWATabstractorigin(reference to INNER.AI.1.3)
+                \DWATlocation(...)
             ...
             0
         ! Another concrete instance of INNER within OUTER
@@ -1896,7 +1896,7 @@ Figure \ref{fig:inliningexample2abstractinstance}
 differs from that in 
 Figure \refersec{fig:inliningexample1abstractinstance}
 in that \texttt{INNER} lacks a 
-\livelink{chap:DWATinline}{DW\_AT\_inline} attribute
+\DWATinline{} attribute
 and therefore is not a distinct abstract instance. \texttt{INNER}
 is merely an out\dash of\dash line routine that is part of \texttt{OUTER}\textquoteright s
 abstract instance. This is reflected in the Figure by
@@ -1917,11 +1917,11 @@ inlined instance, and that \texttt{INNER} is nested within it as a
 concrete out\dash of\dash line subprogram. Because \texttt{INNER} is cloned
 for each inline expansion of \texttt{OUTER}, only the invariant
 attributes of \texttt{INNER} 
-(for example, \livelink{chap:DWATname}{DW\_AT\_name}) are specified
+(for example, \DWATname) are specified
 in the abstract instance of \texttt{OUTER}, and the low\dash level,
 \addtoindexx{abstract instance!example}
 instance\dash specific attributes of \texttt{INNER} (for example,
-\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}) are specified in 
+\DWATlowpc) are specified in 
 each concrete instance of \texttt{OUTER}.
 \addtoindexx{concrete instance!example}
 
@@ -1935,37 +1935,37 @@ instance of \texttt{OUTER} that contains the calls.
     ! Abstract instance for OUTER
     ! \addtoindex{abstract instance}
 OUTER.AI.2.1:
-    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-        \livelink{chap:DWATname}{DW\_AT\_name}("OUTER")
-        \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
+    \DWTAGsubprogram
+        \DWATname("OUTER")
+        \DWATinline(\DWINLdeclaredinlined)
         ! No low/high PCs
 OUTER.AI.2.2:
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-            \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_FORMAL")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+        \DWTAGformalparameter
+            \DWATname("OUTER\_FORMAL")
+            \DWATtype(reference to integer)
             ! No location
 OUTER.AI.2.3:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_LOCAL")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+        \DWTAGvariable
+            \DWATname("OUTER\_LOCAL")
+            \DWATtype(reference to integer)
             ! No location
         !
         ! Nested out-of-line INNER subprogram
         !
 OUTER.AI.2.4:
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("INNER")
-            ! No \livelink{chap:DWATinline}{DW\_AT\_inline}
+        \DWTAGsubprogram
+            \DWATname("INNER")
+            ! No \DWATinline
             ! No low/high PCs, frame\_base, etc.
 OUTER.AI.2.5:
-            \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_FORMAL")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+            \DWTAGformalparameter
+                \DWATname("INNER\_FORMAL")
+                \DWATtype(reference to integer)
                 ! No location
 OUTER.AI.2.6:
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-                \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_LOCAL")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+            \DWTAGvariable
+                \DWATname("INNER\_LOCAL")
+                \DWATtype(reference to integer)
                 ! No location
             ...
             0
@@ -1984,42 +1984,42 @@ OUTER.AI.2.6:
     ! Concrete instance for call "OUTER(7)"
     !
 OUTER.CI.2.1:
-    \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+    \DWTAGinlinedsubroutine
         ! No name
-        \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.1)
-        \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
-        \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
+        \DWATabstractorigin(reference to OUTER.AI.2.1)
+        \DWATlowpc(...)
+        \DWAThighpc(...)
 OUTER.CI.2.2:
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+        \DWTAGformalparameter
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.2)
-            \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+            \DWATabstractorigin(reference to OUTER.AI.2.2)
+            \DWATlocation(...)
 OUTER.CI.2.3:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+        \DWTAGvariable
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.3)
-            \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+            \DWATabstractorigin(reference to OUTER.AI.2.3)
+            \DWATlocation(...)
         !
         ! Nested out-of-line INNER subprogram
         !
 OUTER.CI.2.4:
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+        \DWTAGsubprogram
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.4)
-            \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
-            \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
-            \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}(...)
-            \livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}(...)
+            \DWATabstractorigin(reference to OUTER.AI.2.4)
+            \DWATlowpc(...)
+            \DWAThighpc(...)
+            \DWATframebase(...)
+            \DWATstaticlink(...)
 OUTER.CI.2.5:
-            \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+            \DWTAGformalparameter
                 ! No name
-                \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.5)
-                \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+                \DWATabstractorigin(reference to OUTER.AI.2.5)
+                \DWATlocation(...)
 OUTER.CI.2.6:
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+            \DWTAGvariable
                 ! No name
-                \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AT.2.6)
-                \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+                \DWATabstractorigin(reference to OUTER.AT.2.6)
+                \DWATlocation(...)
             ...
             0
         ...
@@ -2049,9 +2049,9 @@ instance of \texttt{OUTER}, the description of \texttt{INNER} has the full
 complement of attributes that would be expected for a
 normal subprogram. 
 While attributes such as 
-\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc},
-\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}
-\livelink{chap:DWATlocation}{DW\_AT\_location},
+\DWATlowpc,
+\DWAThighpc
+\DWATlocation,
 and so on, typically are omitted
 \addtoindexx{high PC attribute}
 from 
@@ -2110,40 +2110,40 @@ for accessing purposes.)
     ! Abstract instance for OUTER
     ! \addtoindexx{abstract instance!example}
 OUTER.AI.3.1:
-    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-        \livelink{chap:DWATname}{DW\_AT\_name}("OUTER")
-        \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
+    \DWTAGsubprogram
+        \DWATname("OUTER")
+        \DWATinline(\DWINLdeclaredinlined)
         ! No low/high PCs
 OUTER.AI.3.2:
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-            \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_FORMAL")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+        \DWTAGformalparameter
+            \DWATname("OUTER\_FORMAL")
+            \DWATtype(reference to integer)
             ! No location
 OUTER.AI.3.3:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_LOCAL")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+        \DWTAGvariable
+            \DWATname("OUTER\_LOCAL")
+            \DWATtype(reference to integer)
             ! No location
         !
         ! Normal INNER
         !
 OUTER.AI.3.4:
-        \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("INNER")
-            \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
-            \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
-            \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}(...)
-            \livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}(...)
+        \DWTAGsubprogram
+            \DWATname("INNER")
+            \DWATlowpc(...)
+            \DWAThighpc(...)
+            \DWATframebase(...)
+            \DWATstaticlink(...)
 OUTER.AI.3.5:
-            \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_FORMAL")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
-                \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+            \DWTAGformalparameter
+                \DWATname("INNER\_FORMAL")
+                \DWATtype(reference to integer)
+                \DWATlocation(...)
 OUTER.AI.3.6:
-            \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-                \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_LOCAL")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
-                \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+            \DWTAGvariable
+                \DWATname("INNER\_LOCAL")
+                \DWATtype(reference to integer)
+                \DWATlocation(...)
             ...
             0
         ...
@@ -2160,25 +2160,25 @@ OUTER.AI.3.6:
     ! Concrete instance for call "OUTER(7)"
     ! \addtoindexx{concrete instance!example}
 OUTER.CI.3.1:
-    \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+    \DWTAGinlinedsubroutine
         ! No name
-        \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.3.1)
-        \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
-        \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
-        \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}(...)
+        \DWATabstractorigin(reference to OUTER.AI.3.1)
+        \DWATlowpc(...)
+        \DWAThighpc(...)
+        \DWATframebase(...)
 OUTER.CI.3.2:
-        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+        \DWTAGformalparameter
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.3.2)
+            \DWATabstractorigin(reference to OUTER.AI.3.2)
             ! No type
-            \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+            \DWATlocation(...)
 OUTER.CI.3.3:
-        \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+        \DWTAGvariable
             ! No name
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.3.3)
+            \DWATabstractorigin(reference to OUTER.AI.3.3)
             ! No type
-            \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
-        ! No \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} for "INNER"
+            \DWATlocation(...)
+        ! No \DWTAGsubprogram for "INNER"
         ...
         0
 \end{alltt}
@@ -2212,44 +2212,44 @@ float arr[square(9)]; // square() called and inlined
 \begin{alltt}
         ! For variable mass
         !
-1\$:     \livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "double")
-2\$:     \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("mass")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-            \livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr}(true)
-            \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(9.8)
+1\$:     \DWTAGconsttype
+            \DWATtype(reference to "double")
+2\$:     \DWTAGvariable
+            \DWATname("mass")
+            \DWATtype(reference to 1\$)
+            \DWATconstexpr(true)
+            \DWATconstvalue(9.8)
         ! Abstract instance for square
         !
-10\$:    \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-            \livelink{chap:DWATname}{DW\_AT\_name}("square")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-            \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLinlined}{DW\_INL\_inlined})
-11\$:        \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATname}{DW\_AT\_name}("x")
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+10\$:    \DWTAGsubprogram
+            \DWATname("square")
+            \DWATtype(reference to "int")
+            \DWATinline(\DWINLinlined)
+11\$:        \DWTAGformalparameter
+                \DWATname("x")
+                \DWATtype(reference to "int")
         ! Concrete instance for square(9)
         ! \addtoindexx{concrete instance!example}
-20\$:    \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
-            \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to 10\$)
-            \livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr}(present)
-            \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(81)
-            \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-                \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to 11\$)
-                \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(9)
+20\$:    \DWTAGinlinedsubroutine
+            \DWATabstractorigin(reference to 10\$)
+            \DWATconstexpr(present)
+            \DWATconstvalue(81)
+            \DWTAGformalparameter
+                \DWATabstractorigin(reference to 11\$)
+                \DWATconstvalue(9)
         ! Anonymous array type for arr
         !
-30\$:    \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "float")
-            \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(324) ! 81*4
-            \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
-                \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-                \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(reference to 20\$)
+30\$:    \DWTAGarraytype
+            \DWATtype(reference to "float")
+            \DWATbytesize(324) ! 81*4
+            \DWTAGsubrangetype
+                \DWATtype(reference to "int")
+                \DWATupperbound(reference to 20\$)
         ! Variable arr
         !
-40\$:    \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-            \livelink{chap:DWATname}{DW\_AT\_name}("arr")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 30\$)
+40\$:    \DWTAGvariable
+            \DWATname("arr")
+            \DWATtype(reference to 30\$)
 \end{alltt}
 \end{dwflisting}
 \caption{Constant expressions: DWARF description}
@@ -2281,20 +2281,20 @@ char32_t chr_b = U'h';
 
 ! DWARF description
 !
-1\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("char16\_t")
-        \livelink{chap:DWATencoding}{DW\_AT\_encoding}(\livelink{chap:DWATEUTF}{DW\_ATE\_UTF})
-        \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(2)
-2\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("char32\_t")
-        \livelink{chap:DWATencoding}{DW\_AT\_encoding}(\livelink{chap:DWATEUTF}{DW\_ATE\_UTF})
-        \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(4)
-3\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("chr\_a")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
-4\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("chr\_b")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
+1\$: \DWTAGbasetype
+        \DWATname("char16\_t")
+        \DWATencoding(\DWATEUTF)
+        \DWATbytesize(2)
+2\$: \DWTAGbasetype
+        \DWATname("char32\_t")
+        \DWATencoding(\DWATEUTF)
+        \DWATbytesize(4)
+3\$: \DWTAGvariable
+        \DWATname("chr\_a")
+        \DWATtype(reference to 1\$)
+4\$: \DWTAGvariable
+        \DWATname("chr\_b")
+        \DWATtype(reference to 2\$)
 \end{alltt}
 \end{dwflisting}
 \caption{Unicode character example: DWARF description}
@@ -2329,19 +2329,19 @@ E e1;
 \begin{alltt}
 ! DWARF description
 !
-11\$:  \livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name}("E")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-          \livelink{chap:DWATenumclass}{DW\_AT\_enum\_class}(present)
-12\$:      \livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}
-              \livelink{chap:DWATname}{DW\_AT\_name}("E1")
-              \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(0)
-13\$:      \livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}
-              \livelink{chap:DWATname}{DW\_AT\_name}("E2")
-              \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(100)
-14\$:  \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-         \livelink{chap:DWATname}{DW\_AT\_name}("e1")
-         \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
+11\$:  \DWTAGenumerationtype
+          \DWATname("E")
+          \DWATtype(reference to "int")
+          \DWATenumclass(present)
+12\$:      \DWTAGenumerator
+              \DWATname("E1")
+              \DWATconstvalue(0)
+13\$:      \DWTAGenumerator
+              \DWATname("E2")
+              \DWATconstvalue(100)
+14\$:  \DWTAGvariable
+         \DWATname("e1")
+         \DWATtype(reference to 11\$)
 \end{alltt}
 \end{dwflisting}
 \caption{Type-safe enumeration example: DWARF description}
@@ -2377,17 +2377,17 @@ wrapper<int> obj;
 \begin{alltt}
 ! DWARF description
 !
-11\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-        \livelink{chap:DWATname}{DW\_AT\_name}("wrapper")
-12\$:    \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-            \livelink{chap:DWATname}{DW\_AT\_name}("T")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-13\$:    \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-            \livelink{chap:DWATname}{DW\_AT\_name}("comp")
-            \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 12\$)
-14\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-        \livelink{chap:DWATname}{DW\_AT\_name}("obj")
-        \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
+11\$: \DWTAGstructuretype
+        \DWATname("wrapper")
+12\$:    \DWTAGtemplatetypeparameter
+            \DWATname("T")
+            \DWATtype(reference to "int")
+13\$:    \DWTAGmember
+            \DWATname("comp")
+            \DWATtype(reference to 12\$)
+14\$: \DWTAGvariable
+        \DWATname("obj")
+        \DWATtype(reference to 11\$)
 \end{alltt}
 \end{dwflisting}
 \caption{C++ template example \#1: DWARF description}
@@ -2396,7 +2396,7 @@ wrapper<int> obj;
 
 The actual type of the component \texttt{comp} is \texttt{int}, but in the DWARF
 the type references the
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+\DWTAGtemplatetypeparameter{}
 for \texttt{T}, which in turn references \texttt{int}. This implies that in the
 original template comp was of type \texttt{T} and that was replaced
 with \texttt{int} in the instance. 
@@ -2435,32 +2435,32 @@ Figure \refersec{fig:ctemplateexample2dwarf}.
 \begin{alltt}
 ! DWARF description
 !
-11\$:  \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name}("wrapper")
-12\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("T")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-13\$:      \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-              \livelink{chap:DWATname}{DW\_AT\_name}("comp")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 12\$)
-14\$:  \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-          \livelink{chap:DWATname}{DW\_AT\_name}("obj")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
-21\$:  \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
-          \livelink{chap:DWATname}{DW\_AT\_name}("consume")
-22\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("U")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-23\$:      \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("formal")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
+11\$:  \DWTAGstructuretype
+          \DWATname("wrapper")
+12\$:      \DWTAGtemplatetypeparameter
+              \DWATname("T")
+              \DWATtype(reference to "int")
+13\$:      \DWTAGmember
+              \DWATname("comp")
+              \DWATtype(reference to 12\$)
+14\$:  \DWTAGvariable
+          \DWATname("obj")
+          \DWATtype(reference to 11\$)
+21\$:  \DWTAGsubprogram
+          \DWATname("consume")
+22\$:      \DWTAGtemplatetypeparameter
+              \DWATname("U")
+              \DWATtype(reference to "int")
+23\$:      \DWTAGformalparameter
+              \DWATname("formal")
+              \DWATtype(reference to 11\$)
 \end{alltt}
 \end{dwflisting}
 \caption{C++ template example \#2: DWARF description}
 \label{fig:ctemplateexample2dwarf}
 \end{figure}
 
-In the \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram
+In the \DWTAGsubprogram{
 entry for the instance of consume, \texttt{U} is described as \texttt{int}. 
 The type of formal is \texttt{wrapper\textless U\textgreater} in
 the source. DWARF only represents instantiations of templates;
@@ -2469,7 +2469,7 @@ which is neither
 a template parameter nor a template instantiation. The type
 of formal is described as \texttt{wrapper\textless int\textgreater},
 the instantiation of \texttt{wrapper\textless U\textgreater},
-in the \livelink{chap:DWATtype}{DW\_AT\_type} attribute at 
+in the \DWATtype{} attribute at 
 23\$. 
 There is no
 description of the relationship between template type parameter
@@ -2513,29 +2513,29 @@ Beta<long> b;
 \begin{alltt}
 ! DWARF representation for variable 'b'
 !
-20\$:  \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name}("Alpha")
-21\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("T")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "long")
-22\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("U")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "long")
-23\$:      \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-              \livelink{chap:DWATname}{DW\_AT\_name}("tango")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 21\$)
-24\$:      \livelink{chap:DWTAGmember}{DW\_TAG\_member}
-              \livelink{chap:DWATname}{DW\_AT\_name}("uniform")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 22\$)
-25\$:  \livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias}
-          \livelink{chap:DWATname}{DW\_AT\_name}("Beta")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 20\$)
-26\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("V")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "long")
-27\$:  \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-          \livelink{chap:DWATname}{DW\_AT\_name}("b")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 25\$)
+20\$:  \DWTAGstructuretype
+          \DWATname("Alpha")
+21\$:      \DWTAGtemplatetypeparameter
+              \DWATname("T")
+              \DWATtype(reference to "long")
+22\$:      \DWTAGtemplatetypeparameter
+              \DWATname("U")
+              \DWATtype(reference to "long")
+23\$:      \DWTAGmember
+              \DWATname("tango")
+              \DWATtype(reference to 21\$)
+24\$:      \DWTAGmember
+              \DWATname("uniform")
+              \DWATtype(reference to 22\$)
+25\$:  \DWTAGtemplatealias
+          \DWATname("Beta")
+          \DWATtype(reference to 20\$)
+26\$:      \DWTAGtemplatetypeparameter
+              \DWATname("V")
+              \DWATtype(reference to "long")
+27\$:  \DWTAGvariable
+          \DWATname("b")
+          \DWATtype(reference to 25\$)
 \end{alltt}
 \end{dwflisting}
 \caption{C++ template alias example \#1: DWARF description}
@@ -2568,39 +2568,39 @@ X<Z<int>> z;
 \begin{alltt}
 ! DWARF representation for X<Y<int>>
 !
-30\$:  \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name}("Y")
-31\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("TY")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-32\$:  \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name}("X")
-33\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("TX")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 30\$)
+30\$:  \DWTAGstructuretype
+          \DWATname("Y")
+31\$:      \DWTAGtemplatetypeparameter
+              \DWATname("TY")
+              \DWATtype(reference to "int")
+32\$:  \DWTAGstructuretype
+          \DWATname("X")
+33\$:      \DWTAGtemplatetypeparameter
+              \DWATname("TX")
+              \DWATtype(reference to 30\$)
 !
 ! DWARF representation for X<Z<int>>
 !
-40\$:  \livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias}
-          \livelink{chap:DWATname}{DW\_AT\_name}("Z")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 30\$)
-41\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("T")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
-42\$:  \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
-          \livelink{chap:DWATname}{DW\_AT\_name}("X")
-43\$:      \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
-              \livelink{chap:DWATname}{DW\_AT\_name}("TX")
-              \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 40\$)
+40\$:  \DWTAGtemplatealias
+          \DWATname("Z")
+          \DWATtype(reference to 30\$)
+41\$:      \DWTAGtemplatetypeparameter
+              \DWATname("T")
+              \DWATtype(reference to "int")
+42\$:  \DWTAGstructuretype
+          \DWATname("X")
+43\$:      \DWTAGtemplatetypeparameter
+              \DWATname("TX")
+              \DWATtype(reference to 40\$)
 !
 ! Note that 32\$ and 42\$ are actually the same type
 !
-50\$:  \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-          \livelink{chap:DWATname}{DW\_AT\_name}("y")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to \$32)
-51\$:  \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
-          \livelink{chap:DWATname}{DW\_AT\_name}("z")
-          \livelink{chap:DWATtype}{DW\_AT\_type}(reference to \$42)
+50\$:  \DWTAGvariable
+          \DWATname("y")
+          \DWATtype(reference to \$32)
+51\$:  \DWTAGvariable
+          \DWATname("z")
+          \DWATtype(reference to \$42)
 \end{alltt}
 \end{dwflisting}
 \caption{C++ template alias example \#2: DWARF description}
index c62231c..c4005b7 100644 (file)
@@ -32,68 +32,68 @@ described in Chapters 3, 4 and 5.
 \label{tab:tagnames}
 \simplerule[6in]
 \autocols[0pt]{c}{2}{l}{
-\livelink{chap:DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration},
-\livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type},
-\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type},
-\livelink{chap:DWTAGcatchblock}{DW\_TAG\_catch\_block},
-\livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type},
+\DWTAGaccessdeclaration,
+\DWTAGarraytype,
+\DWTAGbasetype,
+\DWTAGcatchblock,
+\DWTAGclasstype,
 \DWTAGcoarraytype,
-\livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block},
-\livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion},
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit},
-\livelink{chap:DWTAGcondition}{DW\_TAG\_condition},
-\livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type},
-\livelink{chap:DWTAGconstant}{DW\_TAG\_constant},
-\livelink{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure},
-\livelink{chap:DWTAGentrypoint}{DW\_TAG\_entry\_point},
-\livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type},
-\livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator},
-\livelink{chap:DWTAGfiletype}{DW\_TAG\_file\_type},
-\livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter},
-\livelink{chap:DWTAGfriend}{DW\_TAG\_friend},
+\DWTAGcommonblock,
+\DWTAGcommoninclusion,
+\DWTAGcompileunit,
+\DWTAGcondition,
+\DWTAGconsttype,
+\DWTAGconstant,
+\DWTAGdwarfprocedure,
+\DWTAGentrypoint,
+\DWTAGenumerationtype,
+\DWTAGenumerator,
+\DWTAGfiletype,
+\DWTAGformalparameter,
+\DWTAGfriend,
 \DWTAGgenericsubrange,
-\livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration},
-\livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module},
-\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit},
-\livelink{chap:DWTAGinheritance}{DW\_TAG\_inheritance},
-\livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine},
-\livelink{chap:DWTAGinterfacetype}{DW\_TAG\_interface\_type},
-\livelink{chap:DWTAGlabel}{DW\_TAG\_label},
-\livelink{chap:DWTAGlexicalblock}{DW\_TAG\_lexical\_block},
-\livelink{chap:DWTAGmodule}{DW\_TAG\_module},
-\livelink{chap:DWTAGmember}{DW\_TAG\_member},
-\livelink{chap:DWTAGnamelist}{DW\_TAG\_namelist},
-\livelink{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item},
-\livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace},
-\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type},
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit},
-\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type},
-\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type},
-\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type},
-\livelink{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type},
-\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type},
-\livelink{chap:DWTAGsettype}{DW\_TAG\_set\_type},
-\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type},
-\livelink{chap:DWTAGstringtype}{DW\_TAG\_string\_type},
-\livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type},
-\livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram},
-\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type},
-\livelink{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type},
-\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias},
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter},
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter},
-\livelink{chap:DWTAGthrowntype}{DW\_TAG\_thrown\_type},
-\livelink{chap:DWTAGtryblock}{DW\_TAG\_try\_block},
-\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef},
-\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit},
-\livelink{chap:DWTAGuniontype}{DW\_TAG\_union\_type},
-\livelink{chap:DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters},
-\livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type},
-\livelink{chap:DWTAGvariable}{DW\_TAG\_variable},
-\livelink{chap:DWTAGvariant}{DW\_TAG\_variant},
-\livelink{chap:DWTAGvariantpart}{DW\_TAG\_variant\_part},
-\livelink{chap:DWTAGvolatiletype}{DW\_TAG\_volatile\_type},
-\livelink{chap:DWTAGwithstmt}{DW\_TAG\_with\_stmt}
+\DWTAGimporteddeclaration,
+\DWTAGimportedmodule,
+\DWTAGimportedunit,
+\DWTAGinheritance,
+\DWTAGinlinedsubroutine,
+\DWTAGinterfacetype,
+\DWTAGlabel,
+\DWTAGlexicalblock,
+\DWTAGmodule,
+\DWTAGmember,
+\DWTAGnamelist,
+\DWTAGnamelistitem,
+\DWTAGnamespace,
+\DWTAGpackedtype,
+\DWTAGpartialunit,
+\DWTAGpointertype,
+\DWTAGptrtomembertype,
+\DWTAGreferencetype,
+\DWTAGrestricttype,
+\DWTAGrvaluereferencetype,
+\DWTAGsettype,
+\DWTAGsharedtype,
+\DWTAGstringtype,
+\DWTAGstructuretype,
+\DWTAGsubprogram,
+\DWTAGsubrangetype,
+\DWTAGsubroutinetype,
+\DWTAGtemplatealias,
+\DWTAGtemplatetypeparameter,
+\DWTAGtemplatevalueparameter,
+\DWTAGthrowntype,
+\DWTAGtryblock,
+\DWTAGtypedef,
+\DWTAGtypeunit,
+\DWTAGuniontype,
+\DWTAGunspecifiedparameters,
+\DWTAGunspecifiedtype,
+\DWTAGvariable,
+\DWTAGvariant,
+\DWTAGvariantpart,
+\DWTAGvolatiletype,
+\DWTAGwithstmt
 }
 \simplerule[6in]
 \end{table}
@@ -109,9 +109,9 @@ debugging information entries, are described in
 this section and not necessarily mentioned in all
 contexts where they may be appropriate. 
 Examples include 
-\livelink{chap:DWATartificial}{DW\_AT\_artificial}
+\DWATartificial
 the \livelink{chap:declarationcoordinates}{declaration coordinates}, and 
-\livelink{chap:DWATdescription}{DW\_AT\_description}
+\DWATdescription
 among others.}
 
 The debugging information entries are contained 
@@ -165,230 +165,230 @@ to one of the classes shown in Table \refersec{tab:classesofattributevalue}.
 \endfoot
   \hline
 \endlastfoot
-\livetarg{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}
+\DWATabstractoriginTARG
 &\livelinki{chap:DWATabstractorigininlineinstance}{Inline instances of inline subprograms} {inline instances of inline subprograms} \\
 % Heren livelink we cannot use \dash or \dash{}.
 &\livelinki{chap:DWATabstractoriginoutoflineinstance}{Out-of-line instances of inline subprograms}{out-of-line instances of inline subprograms} \\
-\livetarg{chap:DWATaccessibility}{DW\_AT\_accessibility}
+\DWATaccessibilityTARG
 &\livelink{chap:DWATaccessibilitycandadadeclarations}{C++ and Ada declarations} \addtoindexx{Ada} \\
 &\livelink{chap:DWATaccessibilitycppbaseclasses}{C++ base classes} \\
 &\livelink{chap:DWATaccessibilitycppinheritedmembers}{C++ inherited members} \\
-\livetarg{chap:DWATaddressclass}{DW\_AT\_address\_class}
+\DWATaddressclassTARG
 &\livelinki{chap:DWATadressclasspointerorreferencetypes}{Pointer or reference types}{pointer or reference types}  \\
 &\livelinki{chap:DWATaddressclasssubroutineorsubroutinetype}{Subroutine or subroutine type}{subroutine or subroutine type} \\
-\livetarg{chap:DWATallocated}{DW\_AT\_allocated}
+\DWATallocatedTARG
 &\livelinki{chap:DWATallocatedallocationstatusoftypes}{Allocation status of types}{allocation status of types}  \\
-\livetarg{chap:DWATartificial}{DW\_AT\_artificial}
+\DWATartificialTARG
 &\livelinki{chap:DWATartificialobjectsortypesthat}{Objects or types that are not
 actually declared in the source}{objects or types that are not actually declared in the source}  \\
-\livetarg{chap:DWATassociated}{DW\_AT\_associated
+\DWATassociatedTARG{
 &\livelinki{chap:DWATassociatedassociationstatusoftypes}{Association status of types}{association status of types} \\
-\livetarg{chap:DWATbasetypes}{DW\_AT\_base\_types
+\DWATbasetypesTARG{
 &\livelinki{chap:DWATbasetypesprimitivedatatypesofcompilationunit}{Primitive data types of compilation unit}{primitive data types of compilation unit} \\
-\livetarg{chap:DWATbinaryscale}{DW\_AT\_binary\_scale
+\DWATbinaryscaleTARG{
 &\livelinki{chap:DWATbinaryscalebinaryscalefactorforfixedpointtype}{Binary scale factor for fixed-point type}{binary scale factor for fixed-point type} \\
-\livetarg{chap:DWATbitoffset}{DW\_AT\_bit\_offset
+\DWATbitoffsetTARG{
 &\livelinki{chap:DWATbitoffsetbasetypebitlocation}{Base type bit location}{base type bit location} \\
 &\livelinki{chap:DWATbitoffsetdatamemberbitlocation}{Data member bit location}{data member bit location} \\
-\livetarg{chap:DWATbitsize}{DW\_AT\_bit\_size
+\DWATbitsizeTARG{
 &\livelinki{chap:DWATbitsizebasetypebitsize}{Base type bit size}{base type bit size} \\
 &\livelinki{chap:DWATbitsizedatamemberbitsize}{Data member bit size}{data member bit size} \\
 \newpage
-\livetarg{chap:DWATbitstride}{DW\_AT\_bit\_stride
+\DWATbitstrideTARG{
 &\livelinki{chap:DWATbitstridearrayelementstrideofarraytype}{Array element stride (of array type)}{array element stride (of array type)} \\
 &\livelinki{chap:DWATbitstridesubrangestridedimensionofarraytype}{Subrange stride (dimension of array type)}{subrange stride (dimension of array type)} \\
 &\livelinki{chap:DWATbitstrideenumerationstridedimensionofarraytype}{Enumeration stride (dimension of array type)}{enumeration stride (dimension of array type)} \\
-\livetarg{chap:DWATbytesize}{DW\_AT\_byte\_size
+\DWATbytesizeTARG{
 &\livelinki{chap:DWATbytesizedataobjectordatatypesize}{Data object or data type size}{data object or data type size} \\
-\livetarg{chap:DWATbytestride}{DW\_AT\_byte\_stride
+\DWATbytestrideTARG{
 &\livelinki{chap:DWATbytestridearrayelementstrideofarraytype}{Array element stride (of array type)}{array element stride (of array type)} \\
 &\livelinki{chap:DWATbytestridesubrangestridedimensionofarraytype}{Subrange stride (dimension of array type)}{subrange stride (dimension of array type)} \\
 &\livelinki{chap:DWATbytestrideenumerationstridedimensionofarraytype}{Enumeration stride (dimension of array type)}{enumeration stride (dimension of array type)} \\
-\livetarg{chap:DWATcallcolumn}{DW\_AT\_call\_column
+\DWATcallcolumnTARG{
 &\livelinki{chap:DWATcallcolumncolumnpositionofinlinedsubroutinecall}{Column position of inlined subroutine call}{column position of inlined subroutine call}\\
-\livetarg{chap:DWATcallfile}{DW\_AT\_call\_file}
+\DWATcallfileTARG
 &\livelinki{chap:DWATcallfilefilecontaininginlinedsubroutinecall}{File containing inlined subroutine call}{file containing inlined subroutine call} \\
-\livetarg{chap:DWATcallline}{DW\_AT\_call\_line
+\DWATcalllineTARG{
 &\livelinki{chap:DWATcalllinelinenumberofinlinedsubroutinecall}{Line number of inlined subroutine call}{line number of inlined subroutine call} \\
-\livetarg{chap:DWATcallingconvention}{DW\_AT\_calling\_convention
+\DWATcallingconventionTARG{
 &\livelinki{chap:DWATcallingconventionsubprogramcallingconvention}{Subprogram calling convention}{subprogram calling convention} \\
-\livetarg{chap:DWATcommonreference}{DW\_AT\_common\_reference}
+\DWATcommonreferenceTARG
 &\livelinki{chap:commonreferencecommonblockusage}{Common block usage}{common block usage} \\
-\livetarg{chap:DWATcompdir}{DW\_AT\_comp\_dir}
+\DWATcompdirTARG
 &\livelinki{chap:DWATcompdircompilationdirectory}{Compilation directory}{compilation directory} \\
-\livetarg{chap:DWATconstvalue}{DW\_AT\_const\_value}
+\DWATconstvalueTARG
 &\livelinki{chap:DWATconstvalueconstantobject}{Constant object}{constant object} \\
 &\livelinki{chap:DWATconstvalueenumerationliteralvalue}{Enumeration literal value}{enumeration literal value} \\
 &\livelinki{chap:DWATconstvaluetemplatevalueparameter}{Template value parameter}{template value parameter} \\
-\livetarg{chap:DWATconstexpr}{DW\_AT\_const\_expr}
+\DWATconstexprTARG
 &\livelinki{chap:DWATconstexprcompiletimeconstantobject}{Compile-time constant object}{compile-time constant object} \\
 &\livelinki{chap:DWATconstexprcompiletimeconstantfunction}{Compile-time constant function}{compile-time constant function} \\
-\livetarg{chap:DWATcontainingtype}{DW\_AT\_containing\_type}
+\DWATcontainingtypeTARG
 &\livelinki{chap:DWATcontainingtypecontainingtypeofpointertomembertype}{Containing type of pointer to member type}{containing type of pointer to member type} \\
-\livetarg{chap:DWATcount}{DW\_AT\_count}
+\DWATcountTARG
 &\livelinki{chap:DWATcountelementsofsubrangetype}{Elements of subrange type}{elements ofbreg subrange type} \\
-\livetarg{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}
+\DWATdatabitoffsetTARG
 &\livelinki{chap:DWATdatabitoffsetbasetypebitlocation}{Base type bit location}{base type bit location} \\
 &\livelinki{chap:DWATdatabitoffsetdatamemberbitlocation}{Data member bit location}{data member bit location} \\
-\livetarg{chap:DWATdatalocation}{DW\_AT\_data\_location
+\DWATdatalocationTARG{
 &\livelinki{chap:DWATdatalocationindirectiontoactualdata}{Indirection to actual data}{indirection to actual data} \\
-\livetarg{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}
+\DWATdatamemberlocationTARG
 &\livelinki{chap:DWATdatamemberlocationdatamemberlocation}{Data member location}{data member location} \\
 &\livelinki{chap:DWATdatamemberlocationinheritedmemberlocation}{Inherited member location}{inherited member location} \\
-\livetarg{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale}
+\DWATdecimalscaleTARG
 &\livelinki{chap:DWATdecimalscaledecimalscalefactor}{Decimal scale factor}{decimal scale factor} \\
-\livetarg{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign}
+\DWATdecimalsignTARG
 &\livelinki{chap:DWATdecimalsigndecimalsignrepresentation}{Decimal sign representation}{decimal sign representation} \\
-\livetarg{chap:DWATdeclcolumn}{DW\_AT\_decl\_column}
+\DWATdeclcolumnTARG
 &\livelinki{chap:DWATdeclcolumncolumnpositionofsourcedeclaration}{Column position of source declaration}{column position of source declaration} \\
-\livetarg{chap:DWATdeclfile}{DW\_AT\_decl\_file}
+\DWATdeclfileTARG
 &\livelinki{chap:DWATdeclfilefilecontainingsourcedeclaration}{File containing source declaration}{file containing source declaration} \\
-\livetarg{chap:DWATdeclline}{DW\_AT\_decl\_line}
+\DWATdecllineTARG
 &\livelinki{chap:DWATdecllinelinenumberofsourcedeclaration}{Line number of source declaration}{line number of source declaration} \\
-\livetarg{chap:DWATdeclaration}{DW\_AT\_declaration}
+\DWATdeclarationTARG
 &\livelinki{chap:DWATdeclarationincompletenondefiningorseparateentitydeclaration}{Incomplete, non-defining, or separate entity declaration}{incomplete, non-defining, or separate entity declaration} \\
-\livetarg{chap:DWATdefaultvalue}{DW\_AT\_default\_value}
+\DWATdefaultvalueTARG
 &\livelinki{chap:DWATdefaultvaluedefaultvalueofparameter}{Default value of parameter}{default value of parameter} \\
-\livetarg{chap:DWATdescription}{DW\_AT\_description
+\DWATdescriptionTARG{
 &\livelinki{chap:DWATdescriptionartificialnameordescription}{Artificial name or description}{artificial name or description} \\
-\livetarg{chap:DWATdigitcount}{DW\_AT\_digit\_count}
+\DWATdigitcountTARG
 &\livelinki{chap:DWATdigitcountdigitcountforpackeddecimalornumericstringtype}{Digit count for packed decimal or numeric string type}{digit count for packed decimal or numeric string type} \\
-\livetarg{chap:DWATdiscr}{DW\_AT\_discr}
+\DWATdiscrTARG
 &\livelinki{chap:DWATdiscrdiscriminantofvariantpart}{Discriminant of variant part}{discriminant of variant part} \\
-\livetarg{chap:DWATdiscrlist}{DW\_AT\_discr\_list}
+\DWATdiscrlistTARG
 &\livelinki{chap:DWATdiscrlistlistofdiscriminantvalues}{List of discriminant values}{list of discriminant values} \\
-\livetarg{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}
+\DWATdiscrvalueTARG
 &\livelinki{chap:DWATdiscrvaluediscriminantvalue}{Discriminant value}{discriminant value} \\
-\livetarg{chap:DWATelemental}{DW\_AT\_elemental}
+\DWATelementalTARG
 &\livelinki{chap:DWATelementalelementalpropertyofasubroutine}{Elemental property of a subroutine}{elemental property of a subroutine} \\
-\livetarg{chap:DWATencoding}{DW\_AT\_encoding}
+\DWATencodingTARG
 &\livelinki{chap:DWATencodingencodingofbasetype}{Encoding of base type}{encoding of base type} \\
-\livetarg{chap:DWATendianity}{DW\_AT\_endianity}
+\DWATendianityTARG
 &\livelinki{chap:DWATendianityendianityofdata}{Endianity of data}{endianity of data} \\
-\livetarg{chap:DWATentrypc}{DW\_AT\_entry\_pc}
+\DWATentrypcTARG
 &\livelinki{chap:DWATentrypcentryaddressofmoduleinitialization}{Entry address of module initialization}{entry address of module initialization}\\
 &\livelinki{chap:DWATentrypcentryaddressofsubprogram}{Entry address of subprogram}{entry address of subprogram} \\
 &\livelinki{chap:DWATentrypcentryaddressofinlinedsubprogram}{Entry address of inlined subprogram}{entry address of inlined subprogram}\\
-\livetarg{chap:DWATenumclass}{DW\_AT\_enum\_class}
+\DWATenumclassTARG
 &\livelinki{chap:DWATenumclasstypesafeenumerationdefinition}{Type safe enumeration definition}{type safe enumeration definition}\\
-\livetarg{chap:DWATexplicit}{DW\_AT\_explicit}
+\DWATexplicitTARG
 &\livelinki{chap:DWATexplicitexplicitpropertyofmemberfunction}{Explicit property of member function}{explicit property of member function}\\
-\livetarg{chap:DWATextension}{DW\_AT\_extension}
+\DWATextensionTARG
 &\livelinki{chap:DWATextensionpreviousnamespaceextensionororiginalnamespace}{Previous namespace extension or original namespace}{previous namespace extension or original namespace}\\
-\livetarg{chap:DWATexternal}{DW\_AT\_external}
+\DWATexternalTARG
 &\livelinki{chap:DWATexternalexternalsubroutine}{External subroutine}{external subroutine} \\
 &\livelinki{chap:DWATexternalexternalvariable}{External variable}{external variable} \\
-\livetarg{chap:DWATframebase}{DW\_AT\_frame\_base}
+\DWATframebaseTARG
 &\livelinki{chap:DWATframebasesubroutineframebaseaddress}{Subroutine frame base address}{subroutine frame base address} \\
-\livetarg{chap:DWATfriend}{DW\_AT\_friend}
+\DWATfriendTARG
 &\livelinki{chap:DWATfriendfriendrelationship}{Friend relationship}{friend relationship} \\
-\livetarg{chap:DWAThighpc}{DW\_AT\_high\_pc}
+\DWAThighpcTARG
 &\livelinki{chap:DWAThighpccontiguousrangeofcodeaddresses}{Contiguous range of code addresses}{contiguous range of code addresses} \\
-\livetarg{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}
+\DWATidentifiercaseTARG
 &\livelinki{chap:DWATidentifiercaseidentifiercaserule}{Identifier case rule}{identifier case rule} \\
-\livetarg{chap:DWATimport}{DW\_AT\_import}
+\DWATimportTARG
 &\livelinki{chap:DWATimportimporteddeclaration}{Imported declaration}{imported declaration} \\
 &\livelinki{chap:DWATimportimportedunit}{Imported unit}{imported unit} \\
 &\livelinki{chap:DWATimportnamespacealias}{Namespace alias}{namespace alias} \\
 &\livelinki{chap:DWATimportnamespaceusingdeclaration}{Namespace using declaration}{namespace using declaration} \\
 &\livelinki{chap:DWATimportnamespaceusingdirective}{Namespace using directive}{namespace using directive} \\
-\livetarg{chap:DWATinline}{DW\_AT\_inline}
+\DWATinlineTARG
 &\livelinki{chap:DWATinlineabstracttinstance}{Abstract instance}{abstract instance} \\
 &\livelinki{chap:DWATinlineinlinedsubroutine}{Inlined subroutine}{inlined subroutine} \\
-\livetarg{chap:DWATisoptional}{DW\_AT\_is\_optional}
+\DWATisoptionalTARG
 &\livelinki{chap:DWATisoptionaloptionalparameter}{Optional parameter}{optional parameter} \\
-\livetarg{chap:DWATlanguage}{DW\_AT\_language}
+\DWATlanguageTARG
 &\livelinki{chap:DWATlanguageprogramminglanguage}{Programming language}{programming language} \\
-\livetarg{chap:DWATlinkagename}{DW\_AT\_linkage\_name}
+\DWATlinkagenameTARG
 &\livelinki{chap:DWATlinkagenameobjectfilelinkagenameofanentity}{Object file linkage name of an entity}{object file linkage name of an entity}\\
-\livetarg{chap:DWATlocation}{DW\_AT\_location}
+\DWATlocationTARG
 &\livelinki{chap:DWATlocationdataobjectlocation}{Data object location}{data object location}\\
-\livetarg{chap:DWATlowpc}{DW\_AT\_low\_pc}
+\DWATlowpcTARG
 &\livelinki{chap:DWATlowpccodeaddressorrangeofaddresses}{Code address or range of addresses}{code address or range of addresses}\\
-\livetarg{chap:DWATlowerbound}{DW\_AT\_lower\_bound}
+\DWATlowerboundTARG
 &\livelinki{chap:DWATlowerboundlowerboundofsubrange}{Lower bound of subrange}{lower bound of subrange} \\
-\livetarg{chap:DWATmacroinfo}{DW\_AT\_macro\_info}
+\DWATmacroinfoTARG
 &\livelinki{chap:DWATmacroinfomacroinformation}{Macro information} {macro information} (\texttt{\#define}, \texttt{\#undef})\\
-\livetarg{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram}
+\DWATmainsubprogramTARG
 &\livelinki{chap:DWATmainsubprogrammainorstartingsubprogram}{Main or starting subprogram}{main or starting subprogram} \\
 &\livelinki{chap:DWATmainsubprogramunitcontainingmainorstartingsubprogram}{Unit containing main or starting subprogram}{unit containing main or starting subprogram}\\
-\livetarg{chap:DWATmutable}{DW\_AT\_mutable}
+\DWATmutableTARG
 &\livelinki{chap:DWATmutablemutablepropertyofmemberdata}{Mutable property of member data}{mutable property of member data} \\
-\livetarg{chap:DWATname}{DW\_AT\_name}
+\DWATnameTARG
 &\livelinki{chap:DWATnamenameofdeclaration}{Name of declaration}{name of declaration}\\
 &\livelinki{chap:DWATnamepathnameofcompilationsource}{Path name of compilation source}{path name of compilation source} \\
-\livetarg{chap:DWATnamelistitem}{DW\_AT\_namelist\_item}
+\DWATnamelistitemTARG
 &\livelinki{chap:DWATnamelistitemnamelistitem}{Namelist item}{namelist item}\\
-\livetarg{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}
+\DWATobjectpointerTARG
 &\livelinki{chap:DWATobjectpointerobjectthisselfpointerofmemberfunction}{Object (\texttt{this}, \texttt{self}) pointer of member function}{object (\texttt{this}, \texttt{self}) pointer of member function}\\
-\livetarg{chap:DWATordering}{DW\_AT\_ordering}
+\DWATorderingTARG
 &\livelinki{chap:DWATorderingarrayrowcolumnordering}{Array row/column ordering} {array row/column ordering}\\
-\livetarg{chap:DWATpicturestring}{DW\_AT\_picture\_string}
+\DWATpicturestringTARG
 &\livelinki{chap:DWATpicturestringpicturestringfornumericstringtype}{Picture string for numeric string type}{picture string for numeric string type} \\
-\livetarg{chap:DWATpriority}{DW\_AT\_priority}
+\DWATpriorityTARG
 &\livelinki{chap:DWATprioritymodulepriority}{Module priority}{module priority}\\
-\livetarg{chap:DWATproducer}{DW\_AT\_producer}
+\DWATproducerTARG
 &\livelinki{chap:DWATproducercompileridentification}{Compiler identification}{compiler identification}\\
-\livetarg{chap:DWATprototyped}{DW\_AT\_prototyped}
+\DWATprototypedTARG
 &\livelinki{chap:DWATprototypedsubroutineprototype}{Subroutine prototype}{subroutine prototype}\\
-\livetarg{chap:DWATpure}{DW\_AT\_pure}
+\DWATpureTARG
 &\livelinki{chap:DWATpurepurepropertyofasubroutine}{Pure property of a subroutine}{pure property of a subroutine} \\
-\livetarg{chap:DWATranges}{DW\_AT\_ranges}
+\DWATrangesTARG
 &\livelinki{chap:DWATrangesnoncontiguousrangeofcodeaddresses}{Non-contiguous range of code addresses}{non-contiguous range of code addresses} \\
 \DWATrankTARG
 &\livelinki{chap:DWATrankofdynamicarray}{Dynamic number of array dimensions}{dynamic number of array dimensions} \\
-\livetarg{chap:DWATrecursive}{DW\_AT\_recursive}
+\DWATrecursiveTARG
 &\livelinki{chap:DWATrecursiverecursivepropertyofasubroutine}{Recursive property of a subroutine}{recursive property of a subroutine} \\
-\livetarg{chap:DWATreturnaddr}{DW\_AT\_return\_addr}
+\DWATreturnaddrTARG
 &\livelinki{chap:DWATreturnaddrsubroutinereturnaddresssavelocation}{Subroutine return address save location}{subroutine return address save location} \\
-\livetarg{chap:DWATsegment}{DW\_AT\_segment}
+\DWATsegmentTARG
 &\livelinki{chap:DWATsegmentaddressinginformation}{Addressing information}{addressing information} \\
-\livetarg{chap:DWATsibling}{DW\_AT\_sibling}
+\DWATsiblingTARG
 &\livelinki{chap:DWATsiblingdebugginginformationentryrelationship}{Debugging information entry relationship}{debugging information entry relationship} \\
-\livetarg{chap:DWATsmall}{DW\_AT\_small}
+\DWATsmallTARG
 &\livelinki{chap:DWATsmallscalefactorforfixedpointtype}{Scale factor for fixed-point type}{scale factor for fixed-point type} \\
-\livetarg{chap:DWATsignature}{DW\_AT\_signature}
+\DWATsignatureTARG
 &\livelinki{chap:DWATsignaturetypesignature}{Type signature}{type signature}\\
-\livetarg{chap:DWATspecification}{DW\_AT\_specification}
+\DWATspecificationTARG
 &\livelinki{chap:DWATspecificationincompletenondefiningorseparatedeclaration}{Incomplete, non-defining, or separate declaration corresponding to a declaration}{incomplete, non-defining, or separate declaration corresponding to a declaration} \\
-\livetarg{chap:DWATstartscope}{DW\_AT\_start\_scope}
+\DWATstartscopeTARG
 &\livelinki{chap:DWATstartscopeobjectdeclaration}{Object declaration}{object declaration}\\
 &\livelinki{chap:DWATstartscopetypedeclaration}{Type declaration}{type declaration}\\
-\livetarg{chap:DWATstaticlink}{DW\_AT\_static\_link}
+\DWATstaticlinkTARG
 &\livelinki{chap:DWATstaticlinklocationofuplevelframe}{Location of uplevel frame}{location of uplevel frame} \\
-\livetarg{chap:DWATstmtlist}{DW\_AT\_stmt\_list}
+\DWATstmtlistTARG
 &\livelinki{chap:DWATstmtlistlinenumberinformationforunit}{Line number information for unit}{line number information for unit}\\
-\livetarg{chap:DWATstringlength}{DW\_AT\_string\_length}
+\DWATstringlengthTARG
 &\livelinki{chap:DWATstringlengthstringlengthofstringtype}{String length of string type}{string length of string type}
  \\
-\livetarg{chap:DWATstringlengthbitsize}{DW\_AT\_string\_length\_bit\_size}
+\DWATstringlengthbitsizeTARG
 &\livelinki{chap:DWATstringlengthstringlengthofstringtype}{Size of string length of string type}{string length of string type!size of}
  \\
-\livetarg{chap:DWATstringlengthbytesize}{DW\_AT\_string\_length\_byte\_size}
+\DWATstringlengthbytesizeTARG
 &\livelinki{chap:DWATstringlengthstringlengthofstringtype}{Size of string length of string type}{string length of string type!size of}
  \\
-\livetarg{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}
+\DWATthreadsscaledTARG
 &\livelink{chap:DWATthreadsscaledupcarrayboundthreadsscalfactor}{UPC!array bound THREADS scale factor}\\
-\livetarg{chap:DWATtrampoline}{DW\_AT\_trampoline}
+\DWATtrampolineTARG
 &\livelinki{chap:DWATtrampolinetargetsubroutine}{Target subroutine}{target subroutine of trampoline} \\
-\livetarg{chap:DWATtype}{DW\_AT\_type}
+\DWATtypeTARG
 &\livelinki{chap:DWATtypetypeofdeclaration}{Type of declaration}{type of declaration} \\
 &\livelinki{chap:DWATtypetypeofsubroutinereturn}{Type of subroutine return}{type of subroutine return} \\
-\livetarg{chap:DWATupperbound}{DW\_AT\_upper\_bound}
+\DWATupperboundTARG
 &\livelinki{chap:DWATupperboundupperboundofsubrange}{Upper bound of subrange}{upper bound of subrange} \\
-\livetarg{chap:DWATuselocation}{DW\_AT\_use\_location}
+\DWATuselocationTARG
 &\livelinki{chap:DWATuselocationmemberlocationforpointertomembertype}{Member location for pointer to member type}{member location for pointer to member type} \\
-\livetarg{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8}
+\DWATuseUTFeightTARG\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8}
 &\livelinki{chap:DWATuseUTF8compilationunitusesutf8strings}{Compilation unit uses UTF-8 strings}{compilation unit uses UTF-8 strings} \\
-\livetarg{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}
+\DWATvariableparameterTARG
 &\livelinki{chap:DWATvariableparameternonconstantparameterflag}{Non-constant parameter flag}{non-constant parameter flag}  \\
-\livetarg{chap:DWATvirtuality}{DW\_AT\_virtuality}
+\DWATvirtualityTARG
 &\livelinki{chap:DWATvirtualityvirtualityindication}{Virtuality indication}{virtuality indication} \\
 &\livelinki{chap:DWATvirtualityvirtualityofbaseclass}{Virtuality of base class} {virtuality of base class} \\
 &\livelinki{chap:DWATvirtualityvirtualityoffunction}{Virtuality of function}{virtuality of function} \\
-\livetarg{chap:DWATvisibility}{DW\_AT\_visibility}
+\DWATvisibilityTARG
 &\livelinki{chap:DWATvisibilityvisibilityofdeclaration}{Visibility of declaration}{visibility of declaration} \\
-\livetarg{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}
+\DWATvtableelemlocationTARG
 &\livelinki{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}{Virtual function vtable slot}{virtual function vtable slot}\\
 \end{longtable}
 
@@ -570,7 +570,7 @@ quickly scan chains of sibling entries, while ignoring the
 children of individual siblings, that producer may attach 
 \addtoindexx{sibling attribute}
 a
-\livelink{chap:DWATsibling}{DW\_AT\_sibling} attribute 
+\DWATsibling{} attribute 
 to any debugging information entry. 
 The
 value of this attribute is a reference to the sibling entry
@@ -653,29 +653,30 @@ is larger than can be stored in a single stack element, the
 value is truncated to the element size and the low\dash order bits
 are pushed on the stack.
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPlit0}{DW\_OP\_lit0}, \livetarg{chap:DWOPlit1}{DW\_OP\_lit1}, \dots, \livetarg{chap:DWOPlit31}{DW\_OP\_lit31}}
+\itembfnl{\DWOPlitzeroTARG, \DWOPlitoneTARG, \dots, \DWOPlitthirtyoneTARG}
 The \DWOPlitnTARG{} operations encode the unsigned literal values
 from 0 through 31, inclusive.
 
-\itembfnl{\livetarg{chap:DWOPaddr}{DW\_OP\_addr}}
-The \livetarg{chap:DWOPaddr}{DW\_OP\_addr} operation has a single operand that encodes
+\itembfnl{\DWOPaddrTARG}
+The \DWOPaddrTARG{} operation has a single operand that encodes
 a machine address and whose size is the \addtoindex{size of an address}
 on the target machine.
 
-\itembfnl{\livetarg{chap:DWOPconst1u}{DW\_OP\_const1u}, \livetarg{chap:DWOPconst2u}{DW\_OP\_const2u}, \livetarg{chap:DWOPconst4u}{DW\_OP\_const4u}, \livetarg{chap:DWOPconst8u}{DW\_OP\_const8u}}
+\itembfnl{DWOPconstoneuTARG, \DWOPconsttwouTARG, \DWOPconstfouruTARG, \DWOPconsteightuTARG}
+\DWOPconstnxMARK\DWOPconstnxINDX{}
 The single operand of a \DWOPconstnuTARG{} operation provides a 1,
 2, 4, or 8\dash byte unsigned integer constant, respectively.
 
-\itembfnl{\livetarg{chap:DWOPconst1s}{DW\_OP\_const1s}, \livetarg{chap:DWOPconst2s}{DW\_OP\_const2s}, \livetarg{chap:DWOPconst4s}{DW\_OP\_const4s}, \livetarg{chap:DWOPconst8s}{DW\_OP\_const8s}}
+\itembfnl{\DWOPconstonesTARG, \DWOPconsttwosTARG, \DWOPconstfoursTARG, \DWOPconsteightsTARG}
 The single operand of a \DWOPconstnsTARG{} operation provides a 1,
 2, 4, or 8\dash byte signed integer constant, respectively.
 
-\itembfnl{\livetarg{chap:DWOPconstu}{DW\_OP\_constu}}
-The single operand of the \livetarg{chap:DWOPconstu}{DW\_OP\_constu} operation provides
+\itembfnl{\DWOPconstuTARG}
+The single operand of the \DWOPconstuTARG{} operation provides
 an unsigned LEB128 integer constant.
 
-\itembfnl{\livetarg{chap:DWOPconsts}{DW\_OP\_consts}}
-The single operand of the \livetarg{chap:DWOPconsts}{DW\_OP\_consts} operation provides
+\itembfnl{\DWOPconstsTARG}
+The single operand of the \DWOPconstsTARG{} operation provides
 a signed LEB128 integer constant.
 
 \end{enumerate}
@@ -688,23 +689,23 @@ The following operations push a value onto the stack that is
 the result of adding the contents of a register to a given
 signed offset.
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPfbreg}{DW\_OP\_fbreg}}
-The \livetarg{chap:DWOPfbreg}{DW\_OP\_fbreg} operation provides a signed LEB128 offset
+\itembfnl{\DWOPfbregTARG}
+The \DWOPfbregTARG{} operation provides a signed LEB128 offset
 from the address specified by the location description in the
-\livelink{chap:DWATframebase}{DW\_AT\_frame\_base} attribute of the current function. (This
+\DWATframebase{} attribute of the current function. (This
 is typically a \doublequote{stack pointer} register plus or minus
 some offset. On more sophisticated systems it might be a
 location list that adjusts the offset according to changes
 in the stack pointer as the PC changes.)
 
-\itembfnl{\livetarg{chap:DWOPbreg0}{DW\_OP\_breg0}, \livetarg{chap:DWOPbreg1}{DW\_OP\_breg1}, \dots, \livetarg{chap:DWOPbreg31}{DW\_OP\_breg31} }
+\itembfnl{\DWOPbregzeroTARG, \DWOPbregoneTARG, \dots, \DWOPbregthirtyoneTARG}
 The single operand of the \DWOPbregnTARG{} 
 operations provides
 a signed LEB128 offset from
 the specified register.
 
-\itembfnl{\livetarg{chap:DWOPbregx}{DW\_OP\_bregx} }
-The \livetarg{chap:DWOPbregx}{DW\_OP\_bregx} operation has two operands: a register
+\itembfnl{\DWOPbregxTARG{} }
+The \DWOPbregxINDX{} operation has two operands: a register
 which is specified by an unsigned LEB128 number, followed by
 a signed LEB128 offset.
 
@@ -719,37 +720,37 @@ operations manipulate the DWARF stack. Operations
 that index the stack assume that the top of the stack (most
 recently added entry) has index 0.
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPdup}{DW\_OP\_dup}}
-The \livetarg{chap:DWOPdup}{DW\_OP\_dup} operation duplicates the value at the top of the stack.
+\itembfnl{\DWOPdupTARG}
+The \DWOPdupTARG{} operation duplicates the value at the top of the stack.
 
-\itembfnl{\livetarg{chap:DWOPdrop}{DW\_OP\_drop}}
-The \livetarg{chap:DWOPdrop}{DW\_OP\_drop} operation pops the value at the top of the stack.
+\itembfnl{\DWOPdropTARG}
+The \DWOPdropTARG{} operation pops the value at the top of the stack.
 
-\itembfnl{\livetarg{chap:DWOPpick}{DW\_OP\_pick}}
-The single operand of the \livetarg{chap:DWOPpick}{DW\_OP\_pick} operation provides a
+\itembfnl{\DWOPpickTARG}
+The single operand of the \DWOPpickTARG{} operation provides a
 1\dash byte index. A copy of the stack entry with the specified
 index (0 through 255, inclusive) is pushed onto the stack.
 
-\itembfnl{\livetarg{chap:DWOPover}{DW\_OP\_over}}
-The \livetarg{chap:DWOPover}{DW\_OP\_over} operation duplicates the entry currently second
+\itembfnl{\DWOPoverTARG}
+The \DWOPoverTARG{} operation duplicates the entry currently second
 in the stack at the top of the stack. 
 This is equivalent to
-a \livelink{chap:DWOPpick}{DW\_OP\_pick} operation, with index 1.  
+a \DWOPpick{} operation, with index 1.  
 
-\itembfnl{\livetarg{chap:DWOPswap}{DW\_OP\_swap}}
-The \livetarg{chap:DWOPswap}{DW\_OP\_swap} operation swaps the top two stack entries. 
+\itembfnl{\DWOPswapTARG}
+The \DWOPswapTARG{} operation swaps the top two stack entries. 
 The entry at the top of the
 stack becomes the second stack entry, 
 and the second entry becomes the top of the stack.
 
-\itembfnl{\livetarg{chap:DWOProt}{DW\_OP\_rot}}
-The \livetarg{chap:DWOProt}{DW\_OP\_rot} operation rotates the first three stack
+\itembfnl{\DWOProtTARG}
+The \DWOProtTARG{} operation rotates the first three stack
 entries. The entry at the top of the stack becomes the third
 stack entry, the second entry becomes the top of the stack,
 and the third entry becomes the second entry.
 
-\itembfnl{\livetarg{chap:DWOPderef}{DW\_OP\_deref}}
-The \livetarg{chap:DWOPderef}{DW\_OP\_deref
+\itembfnl{\DWOPderefTARG}
+The \DWOPderefTARG{
 operation  pops the top stack entry and 
 treats it as an address. The value
 retrieved from that address is pushed. 
@@ -757,12 +758,12 @@ The size of the data retrieved from the
 \addtoindexi{dereferenced}{address!dereference operator}
 address is the \addtoindex{size of an address} on the target machine.
 
-\itembfnl{\livetarg{chap:DWOPderefsize}{DW\_OP\_deref\_size}}
-The \livetarg{chap:DWOPderefsize}{DW\_OP\_deref\_size} operation behaves like the 
-\livelink{chap:DWOPderef}{DW\_OP\_deref}
+\itembfnl{\DWOPderefsizeTARG}
+The \DWOPderefsizeTARG{} operation behaves like the 
+\DWOPderef{}
 operation: it pops the top stack entry and treats it as an
 address. The value retrieved from that address is pushed. In
-the \addtoindex{DW\_OP\_deref\_size} operation, however, the size in bytes
+the \DWOPderefsizeINDX{} operation, however, the size in bytes
 of the data retrieved from the dereferenced address is
 specified by the single operand. This operand is a 1\dash byte
 unsigned integral constant whose value may not be larger
@@ -771,8 +772,8 @@ retrieved is zero extended to the size of an address on the
 target machine before being pushed onto the expression stack.
 
 \needlines{7}
-\itembfnl{\livetarg{chap:DWOPxderef}{DW\_OP\_xderef}}
-The \livetarg{chap:DWOPxderef}{DW\_OP\_xderef} operation provides an extended dereference
+\itembfnl{\DWOPxderefTARG}
+The \DWOPxderefTARG{} operation provides an extended dereference
 mechanism. The entry at the top of the stack is treated as an
 address. The second stack entry is treated as an \doublequote{address
 space identifier} for those architectures that support
@@ -785,9 +786,9 @@ of the data retrieved from the
 address is the
 \addtoindex{size of an address} on the target machine.
 
-\itembfnl{\livetarg{chap:DWOPxderefsize}{DW\_OP\_xderef\_size}}
-The \livetarg{chap:DWOPxderefsize}{DW\_OP\_xderef\_size} operation behaves like the
-\livelink{chap:DWOPxderef}{DW\_OP\_xderef} operation. The entry at the top of the stack is
+\itembfnl{\DWOPxderefsizeTARG}
+The \DWOPxderefsizeTARG{} operation behaves like the
+\DWOPxderef{} operation. The entry at the top of the stack is
 treated as an address. The second stack entry is treated as
 an \doublequote{address space identifier} for those architectures
 that support 
@@ -795,7 +796,7 @@ that support
 address spaces. The top two stack
 elements are popped, and a data item is retrieved through an
 implementation\dash defined address calculation and pushed as the
-new stack top. In the \addtoindex{DW\_OP\_xderef\_size} operation, however,
+new stack top. In the \DWOPxderefsizeINDX{} operation, however,
 the size in bytes of the data retrieved from the 
 \addtoindexi{dereferenced}{address!dereference operator}
 address is specified by the single operand. This operand is a
@@ -804,8 +805,8 @@ than the \addtoindex{size of an address} on the target machine. The data
 retrieved is zero extended to the \addtoindex{size of an address} on the
 target machine before being pushed onto the expression stack.
 
-\itembfnl{\livetarg{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}}
-The \livetarg{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+\itembfnl{\DWOPpushobjectaddressTARG}
+The \DWOPpushobjectaddressTARG{}
 operation pushes the address
 of the object currently being evaluated as part of evaluation
 of a user presented expression. This object may correspond
@@ -820,13 +821,13 @@ evaluation.
 to the implicit push of the base 
 \addtoindexi{address}{address!implicit push of base}
 of a structure prior to evaluation of a 
-\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location
+\DWATdatamemberlocation{
 to access a data member of a structure. For an example, see 
 Appendix \refersec{app:aggregateexamples}.}
 
 \needlines{4}
-\itembfnl{\livetarg{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address}}
-The \livetarg{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address
+\itembfnl{\DWOPformtlsaddressTARG}
+The \DWOPformtlsaddressTARG{
 operation pops a value from the stack, translates this
 value into an address in the 
 \addtoindexx{thread-local storage}
@@ -861,13 +862,13 @@ Instead of    forcing complex thread-local storage calculations into
 the DWARF expressions, the \DWOPformtlsaddress{} allows the consumer 
 to perform the computation based on the run-time environment.}
 
-\itembfnl{\livetarg{chap:DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa}}
-The \livetarg{chap:DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa
+\itembfnl{\DWOPcallframecfaTARG}
+The \DWOPcallframecfaTARG{
 operation pushes the value of the
 CFA, obtained from the Call Frame Information 
 (see Section \refersec{chap:callframeinformation}).
 
-\textit{Although the value of \addtoindex{DW\_AT\_frame\_base}
+\textit{Although the value of \DWATframebase{}
 can be computed using other DWARF expression operators,
 in some cases this would require an extensive location list
 because the values of the registers used in computing the
@@ -892,51 +893,51 @@ Such operations do not cause an exception on overflow.
 
 \needlines{4}
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPabs}{DW\_OP\_abs}}
-The \livetarg{chap:DWOPabs}{DW\_OP\_abs} operation pops the top stack entry, interprets
+\itembfnl{\DWOPabsTARG}
+The \DWOPabsTARG{} operation pops the top stack entry, interprets
 it as a signed value and pushes its absolute value. If the
 absolute value cannot be represented, the result is undefined.
 
 \needlines{4}
-\itembfnl{\livetarg{chap:DWOPand}{DW\_OP\_and}}
-The \livetarg{chap:DWOPand}{DW\_OP\_and} operation pops the top two stack values, performs
+\itembfnl{\DWOPandTARG}
+The \DWOPandTARG{} operation pops the top two stack values, performs
 a bitwise and operation on the two, and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPdiv}{DW\_OP\_div}}
-The \livetarg{chap:DWOPdiv}{DW\_OP\_div} operation pops the top two stack values, divides the former second entry by
+\itembfnl{\DWOPdivTARG}
+The \DWOPdivTARG{} operation pops the top two stack values, divides the former second entry by
 the former top of the stack using signed division, and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPminus}{DW\_OP\_minus}}
-The \livetarg{chap:DWOPminus}{DW\_OP\_minus} operation pops the top two stack values, subtracts the former top of the
+\itembfnl{\DWOPminusTARG}
+The \DWOPminusTARG{} operation pops the top two stack values, subtracts the former top of the
 stack from the former second entry, and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPmod}{DW\_OP\_mod}}
-The \livetarg{chap:DWOPmod}{DW\_OP\_mod} operation pops the top two stack values and pushes the result of the
+\itembfnl{\DWOPmodTARG}
+The \DWOPmodTARG{} operation pops the top two stack values and pushes the result of the
 calculation: former second stack entry modulo the former top of the stack.
 
-\itembfnl{\livetarg{chap:DWOPmul}{DW\_OP\_mul}}
-The \livetarg{chap:DWOPmul}{DW\_OP\_mul} operation pops the top two stack entries, multiplies them together, and
+\itembfnl{\DWOPmulTARG}
+The \DWOPmulTARG{} operation pops the top two stack entries, multiplies them together, and
 pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPneg}{DW\_OP\_neg}}
-The \livetarg{chap:DWOPneg}{DW\_OP\_neg} operation pops the top stack entry, interprets
+\itembfnl{\DWOPnegTARG}
+The \DWOPnegTARG{} operation pops the top stack entry, interprets
 it as a signed value and pushes its negation. If the negation
 cannot be represented, the result is undefined.
 
-\itembfnl{\livetarg{chap:DWOPnot}{DW\_OP\_not}}
-The \livetarg{chap:DWOPnot}{DW\_OP\_not} operation pops the top stack entry, and pushes
+\itembfnl{\DWOPnotTARG}
+The \DWOPnotTARG{} operation pops the top stack entry, and pushes
 its bitwise complement.
 
-\itembfnl{\livetarg{chap:DWOPor}{DW\_OP\_or}}
-The \livetarg{chap:DWOPor}{DW\_OP\_or} operation pops the top two stack entries, performs
+\itembfnl{\DWOPorTARG}
+The \DWOPorTARG{} operation pops the top two stack entries, performs
 a bitwise or operation on the two, and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPplus}{DW\_OP\_plus}}
-The \livetarg{chap:DWOPplus}{DW\_OP\_plus} operation pops the top two stack entries,
+\itembfnl{\DWOPplusTARG}
+The \DWOPplusTARG{} operation pops the top two stack entries,
 adds them together, and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst}}
-The \livetarg{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst} operation pops the top stack entry,
+\itembfnl{\DWOPplusuconstTARG}
+The \DWOPplusuconstTARG{} operation pops the top stack entry,
 adds it to the unsigned LEB128 constant operand and pushes
 the result.
 
@@ -946,28 +947,28 @@ done with
 \doublequote{\DWOPlitn~\DWOPplus.}}
 
 \needlines{3}
-\itembfnl{\livetarg{chap:DWOPshl}{DW\_OP\_shl}}
-The \livetarg{chap:DWOPshl}{DW\_OP\_shl} operation pops the top two stack entries,
+\itembfnl{\DWOPshlTARG}
+The \DWOPshlTARG{} operation pops the top two stack entries,
 shifts the former second entry left (filling with zero bits)
 by the number of bits specified by the former top of the stack,
 and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPshr}{DW\_OP\_shr}}
-The \livetarg{chap:DWOPshr}{DW\_OP\_shr} operation pops the top two stack entries,
+\itembfnl{\DWOPshrTARG}
+The \DWOPshrTARG{} operation pops the top two stack entries,
 shifts the former second entry right logically (filling with
 zero bits) by the number of bits specified by the former top
 of the stack, and pushes the result.
 
 \needlines{6}
-\itembfnl{\livetarg{chap:DWOPshra}{DW\_OP\_shra}}
-The \livetarg{chap:DWOPshra}{DW\_OP\_shra} operation pops the top two stack entries,
+\itembfnl{\DWOPshraTARG}
+The \DWOPshraTARG{} operation pops the top two stack entries,
 shifts the former second entry right arithmetically (divide
 the magnitude by 2, keep the same sign for the result) by
 the number of bits specified by the former top of the stack,
 and pushes the result.
 
-\itembfnl{\livetarg{chap:DWOPxor}{DW\_OP\_xor}}
-The \livetarg{chap:DWOPxor}{DW\_OP\_xor} operation pops the top two stack entries,
+\itembfnl{\DWOPxorTARG}
+The \DWOPxorTARG{} operation pops the top two stack entries,
 performs a bitwise exclusive\dash or operation on the two, and
 pushes the result.
 
@@ -979,7 +980,7 @@ The
 \addtoindexx{DWARF expression!control flow operations}
 following operations provide simple control of the flow of a DWARF expression.
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPle}{DW\_OP\_le}, \livetarg{chap:DWOPge}{DW\_OP\_ge}, \livetarg{chap:DWOPeq}{DW\_OP\_eq}, \livetarg{chap:DWOPlt}{DW\_OP\_lt}, \livetarg{chap:DWOPgt}{DW\_OP\_gt}, \livetarg{chap:DWOPne}{DW\_OP\_ne}}
+\itembfnl{\DWOPleTARG, \DWOPgeTARG, \DWOPeqTARG, \DWOPltTARG, \DWOPgtTARG, \DWOPneTARG}
 The six relational operators each:
 \begin{itemize}
 \item pop the top two stack values,
@@ -994,20 +995,20 @@ constant value 0 if the result of the operation is false.
 \end{itemize}
 
 Comparisons are performed as signed operations. The six
-operators are \addtoindex{DW\_OP\_le} (less than or equal to), \addtoindex{DW\_OP\_ge}
-(greater than or equal to), \addtoindex{DW\_OP\_eq} (equal to), \addtoindex{DW\_OP\_lt} (less
-than), \addtoindex{DW\_OP\_gt} (greater than) and \addtoindex{DW\_OP\_ne} (not equal to).
+operators are \DWOPleINDX{} (less than or equal to), \DWOPgeINDX{}
+(greater than or equal to), \DWOPeqINDX{} (equal to), \DWOPltINDX{} (less
+than), \DWOPgtINDX{} (greater than) and \DWOPneINDX{} (not equal to).
 
 \needlines{6}
-\itembfnl{\livetarg{chap:DWOPskip}{DW\_OP\_skip}}
-\livetarg{chap:DWOPskip}{DW\_OP\_skip} is an unconditional branch. Its single operand
+\itembfnl{\DWOPskipTARG}
+\DWOPskipTARG{} is an unconditional branch. Its single operand
 is a 2\dash byte signed integer constant. The 2\dash byte constant is
 the number of bytes of the DWARF expression to skip forward
 or backward from the current operation, beginning after the
 2\dash byte constant.
 
-\itembfnl{\livetarg{chap:DWOPbra}{DW\_OP\_bra}}
-\livetarg{chap:DWOPbra}{DW\_OP\_bra} is a conditional branch. Its single operand is a
+\itembfnl{\DWOPbraTARG}
+\DWOPbraTARG{} is a conditional branch. Its single operand is a
 2\dash byte signed integer constant.  This operation pops the
 top of stack. If the value popped is not the constant 0,
 the 2\dash byte constant operand is the number of bytes of the
@@ -1017,16 +1018,16 @@ operation, beginning after the 2\dash byte constant.
 % The following item does not correctly hyphenate leading
 % to an overfull hbox and a visible artifact. 
 % So we use \- to suggest hyphenation in this rare situation.
-\itembfnl{\livetarg{chap:DWOPcall2}{DW\_OP\_call2}, \livetarg{chap:DWOPcall4}{DW\_OP\_call4}, \livetarg{chap:DWOPcallref}{DW\_OP\_call\_ref}}
-\addtoindex{DW\_OP\_call2}
-\addtoindex{DW\_OP\_call4}
-and \addtoindex{DW\_OP\_call\_ref} perform
+\itembfnl{\DWOPcalltwoTARG, \DWOPcallfour, \DWOPcallrefTARG}
+\DWOPcalltwoINDX
+\DWOPcallfourINDX
+and \DWOPcallrefINDX{} perform
 subroutine calls during evaluation of a DWARF expression or
 location description. 
-For \addtoindex{DW\_OP\_call2} and \addtoindex{DW\_OP\_call4}, 
+For \DWOPcalltwoINDX{} and \DWOPcallfour{}, 
 the operand is the 2\dash~ or 4\dash byte unsigned offset, respectively,
 of a debugging information entry in the current compilation
-unit. The \addtoindex{DW\_OP\_call\_ref} operator has a single operand. In the
+unit. The \DWOPcallref{} operator has a single operand. In the
 \thirtytwobitdwarfformat,
 the operand is a 4\dash byte unsigned value;
 in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
@@ -1042,8 +1043,8 @@ one shared object or executable to another, the relocation
 must be performed by the consumer.  
 
 \textit{Operand interpretation of
-\addtoindex{DW\_OP\_call2}, \addtoindex{DW\_OP\_call4} and \addtoindex{DW\_OP\_call\_ref} is exactly like
-that for \livelink{chap:DWFORMref2}{DW\_FORM\_ref2}, \livelink{chap:DWFORMref4}{DW\_FORM\_ref4} and \livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr},
+\DWOPcalltwo, \DWOPcallfour{} and \DWOPcallref{} is exactly like
+that for \DWFORMreftwo, \DWFORMreffour{} and \DWFORMrefaddr,
 respectively  
 (see Section  \refersec{datarep:attributeencodings}).  
 }
@@ -1052,13 +1053,13 @@ These operations transfer
 control of DWARF expression evaluation to 
 \addtoindexx{location attribute}
 the 
-\livelink{chap:DWATlocation}{DW\_AT\_location}
+\DWATlocation{}
 attribute of the referenced debugging information entry. If
 there is no such attribute, then there is no effect. Execution
 of the DWARF expression of 
 \addtoindexx{location attribute}
 a 
-\livelink{chap:DWATlocation}{DW\_AT\_location} attribute may add
+\DWATlocation{} attribute may add
 to and/or remove from values on the stack. Execution returns
 to the point following the call when the end of the attribute
 is reached. Values on the stack at the time of the call may be
@@ -1073,8 +1074,8 @@ There
 \addtoindexx{DWARF expression!special operations}
 is one special operation currently defined:
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPnop}{DW\_OP\_nop}}
-The \livetarg{chap:DWOPnop}{DW\_OP\_nop} operation is a place holder. It has no effect
+\itembfnl{\DWOPnopTARG}
+The \DWOPnopTARG{} operation is a place holder. It has no effect
 on the location stack or any of its values.
 \end{enumerate}
 
@@ -1091,35 +1092,35 @@ examples illustrate their behavior graphically.}
 \hline
 \endhead
 \endfoot
-0& 17& \livelink{chap:DWOPdup}{DW\_OP\_dup} &0 &17 \\
+0& 17& \DWOPdup{} &0 &17 \\
 1&   29& &  1 & 17 \\
 2& 1000 & & 2 & 29\\
 & & &         3&1000\\
 
 & & & & \\
-0 & 17 & \livelink{chap:DWOPdrop}{DW\_OP\_drop} & 0 & 29 \\
+0 & 17 & \DWOPdrop{} & 0 & 29 \\
 1 &29  &            & 1 & 1000 \\
 2 &1000& & &          \\
 
 & & & & \\
-0 & 17 & \livelink{chap:DWOPpick}{DW\_OP\_pick}, 2 & 0 & 1000 \\
+0 & 17 & \DWOPpick, 2 & 0 & 1000 \\
 1 & 29 & & 1&17 \\
 2 &1000& &2&29 \\
   &    & &3&1000 \\
 
 & & & & \\
-0&17& \livelink{chap:DWOPover}{DW\_OP\_over}&0&29 \\
+0&17& \DWOPover&0&29 \\
 1&29& &  1&17 \\
 2&1000 & & 2&29\\
  &     & & 3&1000 \\
 
 & & & & \\
-0&17& \livelink{chap:DWOPswap}{DW\_OP\_swap} &0&29 \\
+0&17& \DWOPswap{} &0&29 \\
 1&29& &  1&17 \\
 2&1000 & & 2&1000 \\
 
 & & & & \\
-0&17&\livelink{chap:DWOProt}{DW\_OP\_rot} & 0 &29 \\
+0&17&\DWOProt{} & 0 &29 \\
 1&29 & & 1 & 1000 \\
 2& 1000 & &  2 & 17 \\
 \end{longtable}
@@ -1266,14 +1267,14 @@ architecture. It is recommended that this mapping be defined
 by the ABI authoring committee for each architecture.
 }
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPreg0}{DW\_OP\_reg0}, \livetarg{chap:DWOPreg1}{DW\_OP\_reg1}, ..., \livetarg{chap:DWOPreg31}{DW\_OP\_reg31}}
+\itembfnl{\DWOPregzeroTARG, \DWOPregoneTARG, ..., \DWOPregthirtyoneTARG}
 The \DWOPregnTARG{} operations encode the names of up to 32
 registers, numbered from 0 through 31, inclusive. The object
 addressed is in register \textit{n}.
 
 \needlines{4}
-\itembfnl{\livetarg{chap:DWOPregx}{DW\_OP\_regx}}
-The \livetarg{chap:DWOPregx}{DW\_OP\_regx} operation has a single unsigned LEB128 literal
+\itembfnl{\DWOPregxTARG}
+The \DWOPregxTARG{} operation has a single unsigned LEB128 literal
 operand that encodes the name of a register.  
 
 \end{enumerate}
@@ -1281,7 +1282,7 @@ operand that encodes the name of a register.
 \textit{These operations name a register location. To
 fetch the contents of a register, it is necessary to use
 one of the register based addressing operations, such as
-\livelink{chap:DWOPbregx}{DW\_OP\_bregx
+\DWOPbregx{
 (Section \refersec{chap:registerbasedaddressing})}.
 
 \subsubsubsection{Implicit Location Descriptions}
@@ -1299,8 +1300,8 @@ The following DWARF operations may be used to specify a value
 that has no location in the program but is a known constant
 or is computed from other locations and values in the program.
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPimplicitvalue}{DW\_OP\_implicit\_value}}
-The \livetarg{chap:DWOPimplicitvalue}{DW\_OP\_implicit\_value
+\itembfnl{\DWOPimplicitvalueTARG}
+The \DWOPimplicitvalueTARG{
 operation specifies an immediate value
 using two operands: an unsigned LEB128 length, followed by
 %FIXME: should this block be a reference? To what?
@@ -1308,14 +1309,14 @@ a \nolink{block} representing the value in the memory representation
 of the target machine. The length operand gives the length
 in bytes of the \nolink{block}.
 
-\itembfnl{\livetarg{chap:DWOPstackvalue}{DW\_OP\_stack\_value}}
-The \livetarg{chap:DWOPstackvalue}{DW\_OP\_stack\_value
+\itembfnl{\DWOPstackvalueTARG}
+The \DWOPstackvalueTARG{
 operation specifies that the object
 does not exist in memory but its value is nonetheless known
 and is at the top of the DWARF expression stack. In this form
 of location description, the DWARF expression represents the
 actual value of the object, rather than its location. The
-\addtoindex{DW\_OP\_stack\_value} operation terminates the expression.
+\DWOPstackvalueINDX{} operation terminates the expression.
 \end{enumerate}
 
 
@@ -1343,8 +1344,8 @@ Each composition operation is immediately preceded by a simple
 location description which describes the location where part
 of the resultant value is contained.
 \begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPpiece}{DW\_OP\_piece}}
-The \livetarg{chap:DWOPpiece}{DW\_OP\_piece} operation takes a 
+\itembfnl{\DWOPpieceTARG}
+The \DWOPpieceTARG{} operation takes a 
 single operand, which is an
 unsigned LEB128 number.  The number describes the size in bytes
 of the piece of the object referenced by the preceding simple
@@ -1354,12 +1355,12 @@ the piece within that register is defined by the ABI.
 
 \textit{Many compilers store a single variable in sets of registers,
 or store a variable partially in memory and partially in
-registers. \addtoindex{DW\_OP\_piece} provides a way of describing how large
+registers. \DWOPpieceINDX{} provides a way of describing how large
 a part of a variable a particular DWARF location description
 refers to. }
 
-\itembfnl{\livetarg{chap:DWOPbitpiece}{DW\_OP\_bit\_piece}}
-The \livetarg{chap:DWOPbitpiece}{DW\_OP\_bit\_piece
+\itembfnl{\DWOPbitpieceTARG}
+The \DWOPbitpieceTARG{
 operation takes two operands. The first
 is an unsigned LEB128 number that gives the size in bits
 of the piece. The second is an unsigned LEB128 number that
@@ -1369,22 +1370,22 @@ preceding DWARF location description.
 Interpretation of the
 offset depends on the kind of location description. If the
 location description is empty, the offset doesn\textquoteright t matter and
-the \addtoindex{DW\_OP\_bit\_piece} operation describes a piece consisting
+the \DWOPbitpieceINDX{} operation describes a piece consisting
 of the given number of bits whose values are undefined. If
 the location is a register, the offset is from the least
 significant bit end of the register. If the location is a
-memory address, the \addtoindex{DW\_OP\_bit\_piece} operation describes a
+memory address, the \DWOPbitpieceINDX{} operation describes a
 sequence of bits relative to the location whose address is
 on the top of the DWARF stack using the bit numbering and
 direction conventions that are appropriate to the current
 language on the target system. If the location is any implicit
-value or stack value, the \addtoindex{DW\_OP\_bit\_piece} operation describes
+value or stack value, the \DWOPbitpieceINDX{} operation describes
 a sequence of bits using the least significant bits of that
 value.  
 \end{enumerate}
 
-\textit{\addtoindex{DW\_OP\_bit\_piece} is 
-used instead of \addtoindex{DW\_OP\_piece} when
+\textit{\DWOPbitpieceINDX{} is 
+used instead of \DWOPpieceINDX{} when
 the piece to be assembled into a value or assigned to is not
 byte-sized or is not at the start of a register or addressable
 unit of memory.}
@@ -1401,49 +1402,49 @@ Here are some examples of how DWARF operations are used to form location descrip
 \descriptionitemnl{\DWOPregthree}
 The value is in register 3.
 
-\descriptionitemnl{\livelink{chap:DWOPregx}{DW\_OP\_regx} 54}
+\descriptionitemnl{\DWOPregx{} 54}
 The value is in register 54.
 
-\descriptionitemnl{\livelink{chap:DWOPaddr}{DW\_OP\_addr} 0x80d0045c}
+\descriptionitemnl{\DWOPaddr{} 0x80d0045c}
 The value of a static variable is at machine address 0x80d0045c.
 
 \descriptionitemnl{\DWOPbregeleven{} 44}
 Add 44 to the value in register 11 to get the address of an automatic
 variable instance.
 
-\descriptionitemnl{\livelink{chap:DWOPfbreg}{DW\_OP\_fbreg} -50}
-Given a \livelink{chap:DWATframebase}{DW\_AT\_frame\_base} value of
-\doublequote{\livelink{chap:DWOPbreg31}{DW\_OP\_breg31} 64,} this example
+\descriptionitemnl{\DWOPfbreg{} -50}
+Given a \DWATframebase{} value of
+\doublequote{\DWOPbregthirtyone{} 64,} this example
 computes the address of a local variable that is -50 bytes from a
 logical frame pointer that is computed by adding 64 to the current
 stack pointer (register 31).
 
-\descriptionitemnl{\livelink{chap:DWOPbregx}{DW\_OP\_bregx} 54 32 \livelink{chap:DWOPderef}{DW\_OP\_deref}}
+\descriptionitemnl{\DWOPbregx{} 54 32 \DWOPderef}
 A call-by-reference parameter whose address is in the word 32 bytes
 from where register 54 points.
 
-\descriptionitemnl{\livelink{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst} 4}
+\descriptionitemnl{\DWOPplusuconst{} 4}
 A structure member is four bytes from the start of the structure
 instance. The base address is assumed to be already on the stack.
 
-\descriptionitemnl{\DWOPregthree{} \livelink{chap:DWOPpiece}{DW\_OP\_piece} 4 \DWOPregten{} \livelink{chap:DWOPpiece}{DW\_OP\_piece} 2}
+\descriptionitemnl{\DWOPregthree{} \DWOPpiece{} 4 \DWOPregten{} \DWOPpiece{} 2}
 A variable whose first four bytes reside in register 3 and whose next
 two bytes reside in register 10.
 
-\descriptionitemnl{\livelink{chap:DWOPreg0}{DW\_OP\_reg0} \livelink{chap:DWOPpiece}{DW\_OP\_piece} 4 \livelink{chap:DWOPpiece}{DW\_OP\_piece} 4 \livelink{chap:DWOPfbreg}{DW\_OP\_fbreg} -12 \livelink{chap:DWOPpiece}{DW\_OP\_piece} 4}
+\descriptionitemnl{\DWOPregzero{} \DWOPpiece{} 4 \DWOPpiece{} 4 \DWOPfbreg{} -12 \DWOPpiece{} 4}
 A twelve byte value whose first four bytes reside in register zero,
 whose middle four bytes are unavailable (perhaps due to optimization),
 and whose last four bytes are in memory, 12 bytes before the frame
 base.
 
-\descriptionitemnl{\DWOPbregone{} 0 \DWOPbregtwo{} 0 \livelink{chap:DWOPplus}{DW\_OP\_plus} \livelink{chap:DWOPstackvalue}{DW\_OP\_stack\_value} }
+\descriptionitemnl{\DWOPbregone{} 0 \DWOPbregtwo{} 0 \DWOPplus{} \DWOPstackvalue{} }
 Add the contents of r1 and r2 to compute a value. This value is the
 \doublequote{contents} of an otherwise anonymous location.
 
 \needlines{6}
-\descriptionitemnl{\livelink{chap:DWOPlit1}{DW\_OP\_lit1} \livelink{chap:DWOPstackvalue}{DW\_OP\_stack\_value} \livelink{chap:DWOPpiece}{DW\_OP\_piece} 4 }
+\descriptionitemnl{\DWOPlitone{} \DWOPstackvalue{} \DWOPpiece{} 4 }
 \vspace{-0.1\parsep}
-\descriptionitemnl{\DWOPbregthree 0 \DWOPbregfour 0 \livelink{chap:DWOPplus}{DW\_OP\_plus} \livelink{chap:DWOPstackvalue}{DW\_OP\_stack\_value} \livelink{chap:DWOPpiece}{DW\_OP\_piece} 4}
+\descriptionitemnl{\DWOPbregthree 0 \DWOPbregfour 0 \DWOPplus{} \DWOPstackvalue{} \DWOPpiece{} 4}
 The object value is found in an anonymous (virtual) location whose
 value consists of two parts, given in memory address order: the 4 byte
 value 1 followed by the four byte value computed from the sum of the
@@ -1620,7 +1621,7 @@ Any
 debugging information entry describing a declaration that
 has a type has 
 \addtoindexx{type attribute}
-a \livelink{chap:DWATtype}{DW\_AT\_type} attribute, whose value is a
+a \DWATtype{} attribute, whose value is a
 reference to another debugging information entry. The entry
 referenced may describe a base type, that is, a type that is
 not defined in terms of other data types, or it may describe a
@@ -1630,7 +1631,7 @@ modifier, such as constant, packed, pointer, reference or
 volatile, which in turn will reference another entry describing
 a type or type modifier (using 
 \addtoindexx{type attribute}
-a \livelink{chap:DWATtype}{DW\_AT\_type} attribute of its
+a \DWATtype{} attribute of its
 own). See 
 Section  \refersec{chap:typeentries} 
 for descriptions of the entries describing
@@ -1649,16 +1650,16 @@ program objects are permitted access to the object in question.}
 The accessibility of a declaration is 
 \hypertarget{chap:DWATaccessibilitycandadadeclarations}
 represented by a 
-\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility
+\DWATaccessibility{
 attribute, whose
 \addtoindexx{accessibility attribute}
 value is a constant drawn from the set of codes listed in Table 
 \refersec{tab:accessibilitycodes}.
 
 \begin{simplenametable}[1.9in]{Accessibility codes}{tab:accessibilitycodes}
-\livetarg{chap:DWACCESSpublic}{DW\_ACCESS\_public}          \\
-\livetarg{chap:DWACCESSprivate}{DW\_ACCESS\_private}        \\
-\livetarg{chap:DWACCESSprotected}{DW\_ACCESS\_protected}    \\
+\DWACCESSpublicTARG{}          \\
+\DWACCESSprivateTARG{}        \\
+\DWACCESSprotectedTARG{}    \\
 \end{simplenametable}
 
 \section{Visibility of Declarations}
@@ -1673,15 +1674,15 @@ declared.}
 The 
 \hypertarget{chap:DWATvisibilityvisibilityofdeclaration}
 visibility of a declaration is represented 
-by a \livelink{chap:DWATvisibility}{DW\_AT\_visibility}
+by a \DWATvisibility{}
 attribute\addtoindexx{visibility attribute}, whose value is a
 constant drawn from the set of codes listed in 
 Table \refersec{tab:visibilitycodes}.
 
 \begin{simplenametable}[1.5in]{Visibility codes}{tab:visibilitycodes}
-\livetarg{chap:DWVISlocal}{DW\_VIS\_local}          \\
-\livetarg{chap:DWVISexported}{DW\_VIS\_exported}    \\
-\livetarg{chap:DWVISqualified}{DW\_VIS\_qualified}  \\
+\DWVISlocalTARG{}          \\
+\DWVISexportedTARG{}    \\
+\DWVISqualifiedTARG{}  \\
 \end{simplenametable}
 
 \section{Virtuality of Declarations}
@@ -1692,15 +1693,15 @@ member functions and for virtual base classes.}
 The 
 \hypertarget{chap:DWATvirtualityvirtualityindication}
 virtuality of a declaration is represented by a
-\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}
+\DWATvirtuality{}
 attribute\addtoindexx{virtuality attribute}, whose value is a constant drawn
 from the set of codes listed in 
 Table \refersec{tab:virtualitycodes}.
 
 \begin{simplenametable}[2.4in]{Virtuality codes}{tab:virtualitycodes}
-\livetarg{chap:DWVIRTUALITYnone}{DW\_VIRTUALITY\_none}                      \\
-\livetarg{chap:DWVIRTUALITYvirtual}{DW\_VIRTUALITY\_virtual}                \\
-\livetarg{chap:DWVIRTUALITYpurevirtual}{DW\_VIRTUALITY\_pure\_virtual}    \\
+\DWVIRTUALITYnoneTARG{}                      \\
+\DWVIRTUALITYvirtualTARG{}                \\
+\DWVIRTUALITYpurevirtualTARG{}    \\
 \end{simplenametable}
 
 \section{Artificial Entries}
@@ -1722,7 +1723,7 @@ declaration of an object or type artificially generated by
 a compiler and not explicitly declared by the source program
 \hypertarget{chap:DWATartificialobjectsortypesthat}
 may have a 
-\livelink{chap:DWATartificial}{DW\_AT\_artificial} attribute, 
+\DWATartificial{} attribute, 
 which is a \livelink{chap:classflag}{flag}.
 
 \section{Segmented Addresses}
@@ -1740,16 +1741,16 @@ Any debugging information entry that contains a description
 \hypertarget{chap:DWATsegmentaddressinginformation}
 of the location of an object or subroutine may have
 a 
-\livelink{chap:DWATsegment}{DW\_AT\_segment} attribute, 
+\DWATsegment{} attribute, 
 \addtoindexx{segment attribute}
 whose value is a location
 description. The description evaluates to the segment selector
 of the item being described. If the entry containing the
-\livelink{chap:DWATsegment}{DW\_AT\_segment} attribute has a 
-\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}
-\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc},
-\livelink{chap:DWATranges}{DW\_AT\_ranges} or 
-\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} attribute, 
+\DWATsegment{} attribute has a 
+\DWATlowpc
+\DWAThighpc,
+\DWATranges{} or 
+\DWATentrypc{} attribute, 
 \addtoindexx{entry pc attribute}
 or 
 a location
@@ -1757,19 +1758,19 @@ description that evaluates to an address, then those address
 values represent the offset portion of the address within
 the segment specified 
 \addtoindexx{segment attribute}
-by \livelink{chap:DWATsegment}{DW\_AT\_segment}.
+by \DWATsegment.
 
 If an entry has no 
-\livelink{chap:DWATsegment}{DW\_AT\_segment} attribute, it inherits
+\DWATsegment{} attribute, it inherits
 \addtoindexx{segment attribute}
 the segment value from its parent entry.  If none of the
 entries in the chain of parents for this entry back to
 its containing compilation unit entry have 
-\livelink{chap:DWATsegment}{DW\_AT\_segment} attributes, 
+\DWATsegment{} attributes, 
 then the entry is assumed to exist within a flat
 address space. 
 Similarly, if the entry has a 
-\livelink{chap:DWATsegment}{DW\_AT\_segment} attribute 
+\DWATsegment{} attribute 
 \addtoindexx{segment attribute}
 containing an empty location description, that
 entry is assumed to exist within a 
@@ -1787,10 +1788,10 @@ or the way a subroutine is called.}
 Any debugging information entry representing a pointer or
 reference type or a subroutine or subroutine type may 
 have a 
-\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}
+\DWATaddressclass{}
 attribute, whose value is an integer
 constant.  The set of permissible values is specific to
-each target architecture. The value \livetarg{chap:DWADDRnone}{DW\_ADDR\_none}
+each target architecture. The value \DWADDRnoneTARG
 however,
 is common to all encodings, and means that no address class
 has been specified.
@@ -1854,7 +1855,7 @@ otherwise
 of a program entity has 
 \addtoindexx{declaration attribute}
 a 
-\livelink{chap:DWATdeclaration}{DW\_AT\_declaration
+\DWATdeclaration{
 attribute, which is a 
 \livelink{chap:classflag}{flag}.
 
@@ -1863,23 +1864,23 @@ A debugging information entry that represents a
 \hypertarget{chap:DWATspecificationincompletenondefiningorseparatedeclaration}
 declaration that completes another (earlier) 
 non\dash defining declaration may have a 
-\livelink{chap:DWATspecification}{DW\_AT\_specification}
+\DWATspecification{}
 attribute whose value is a \livelink{chap:classreference}{reference} to
 the debugging information entry representing the non-defining declaration. A debugging
 information entry with a 
-\livelink{chap:DWATspecification}{DW\_AT\_specification
+\DWATspecification{
 attribute does not need to duplicate information
 provided by the debugging information entry referenced by that specification attribute.
 
 It is not the case that all attributes of the debugging information entry referenced by a
-\livelink{chap:DWATspecification}{DW\_AT\_specification} attribute 
+\DWATspecification{} attribute 
 apply to the referring debugging information entry.
 
 \textit{For 
 \addtoindexx{declaration attribute}
 example,
-\livelink{chap:DWATsibling}{DW\_AT\_sibling} and 
-\livelink{chap:DWATdeclaration}{DW\_AT\_declaration
+\DWATsibling{} and 
+\DWATdeclaration{
 \addtoindexx{declaration attribute}
 clearly cannot apply to a 
 \addtoindexx{declaration attribute}
@@ -1910,16 +1911,16 @@ type
 may 
 \addtoindex{declaration line attribute}
 have
-\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}
-\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} and 
-\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column}
+\DWATdeclfile
+\DWATdeclline{} and 
+\DWATdeclcolumn{}
 attributes each of whose value is an unsigned
 \livelink{chap:classconstant}{integer constant}.
 
 The value of 
 \addtoindexx{declaration file attribute}
 the 
-\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}
+\DWATdeclfile{}
 attribute 
 \addtoindexx{file containing declaration}
 corresponds to
@@ -1932,14 +1933,14 @@ has been specified.
 
 The value of 
 \addtoindexx{declaration line attribute}
-the \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} attribute represents
+the \DWATdeclline{} attribute represents
 the source line number at which the first character of
 the identifier of the declared object appears. The value 0
 indicates that no source line has been specified.
 
 The value of 
 \addtoindexx{declaration column attribute}
-the \livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column} attribute represents
+the \DWATdeclcolumn{} attribute represents
 the source column number at which the first character of
 the identifier of the declared object appears. The value 0
 indicates that no column has been specified.
@@ -1954,7 +1955,7 @@ representing
 \addtoindexx{names!identifier}
 a program entity
 that has been given a name may have a 
-\livelink{chap:DWATname}{DW\_AT\_name} attribute,
+\DWATname{} attribute,
 whose 
 \addtoindexx{name attribute}
 value is a \livelink{chap:classstring}{string} 
@@ -1970,12 +1971,12 @@ of language translators that use some form of mangled name
 \addtoindex{mangled names}
 (as do many implementations of C++) should use the unmangled
 form of the name in the 
-DWARF \livelink{chap:DWATname}{DW\_AT\_name} attribute,
+DWARF \DWATname{} attribute,
 \addtoindexx{name attribute}
 including the keyword operator (in names such as \doublequote{operator +}),
 if present. See also 
 Section \refersec{chap:linkagenames} regarding the use
-of \livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} for 
+of \DWATlinkagename{} for 
 \addtoindex{mangled names}
 mangled names. 
 Sequences of
@@ -1989,7 +1990,7 @@ includes variables and parameters) or
 may have 
 \addtoindexx{location attribute}
 a
-\livelink{chap:DWATlocation}{DW\_AT\_location} attribute,
+\DWATlocation{} attribute,
 \addtoindexx{location attribute}
 whose value is a location description
 (see Section \refersec{chap:locationdescriptions}).
@@ -2000,22 +2001,22 @@ is represented by any
 kind of debugging information entry that has 
 \addtoindexx{location attribute}
 a 
-\livelink{chap:DWATlocation}{DW\_AT\_location}
+\DWATlocation{}
 attribute. 
 \addtoindexx{location attribute}
 If a suitable entry is not otherwise available,
 a DWARF procedure can be represented using a debugging
 \addtoindexx{DWARF procedure entry}
 information entry with the 
-tag \livetarg{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure}
+tag \DWTAGdwarfprocedureTARG{}
 together with 
 \addtoindexx{location attribute}
-a \livelink{chap:DWATlocation}{DW\_AT\_location} attribute.  
+a \DWATlocation{} attribute.  
 
 A DWARF procedure
-is called by a \livelink{chap:DWOPcall2}{DW\_OP\_call2}
-\livelink{chap:DWOPcall4}{DW\_OP\_call4} or 
-\livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}
+is called by a \DWOPcalltwo
+\DWOPcallfour{} or 
+\DWOPcallref{}
 DWARF expression operator 
 (see Section \refersec{chap:controlflowoperations}).
 
@@ -2030,28 +2031,28 @@ subroutines, ordinary \nolink{blocks},
 try/catch \nolink{blocks} (see Section\refersec{chap:tryandcatchblockentries}), 
 labels and the like, may have
 \begin{itemize}
-\item A \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} attribute for
+\item A \DWATlowpc{} attribute for
 \hypertarget{chap:DWATlowpccodeaddressorrangeofaddresses}
 a single address,
 
-\item A \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}
+\item A \DWATlowpc{}
 \addtoindexx{low PC attribute}
 and 
-\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}
+\DWAThighpc{}
 \addtoindexx{high PC attribute}
 \hypertarget{chap:DWAThighpccontiguousrangeofcodeaddresses}
 pair of attributes for 
 a single contiguous range of
 addresses, or
 
-\item A \livelink{chap:DWATranges}{DW\_AT\_ranges} attribute 
+\item A \DWATranges{} attribute 
 \addtoindexx{ranges attribute}
 for a non-contiguous range of addresses.
 \end{itemize}
 
 In addition, a non-contiguous range of 
 addresses may also be specified for the
-\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} attribute.
+\DWATstartscope{} attribute.
 \addtoindexx{start scope attribute}
 
 If an entity has no associated machine code, 
@@ -2060,13 +2061,13 @@ none of these attributes are specified.
 \subsection{Single Address} 
 When there is a single address associated with an entity,
 such as a label or alternate entry point of a subprogram,
-the entry has a \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} attribute whose value is the
+the entry has a \DWATlowpc{} attribute whose value is the
 relocated address for the entity.
 
-\textit{While the \livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc}
+\textit{While the \DWATentrypc{}
 attribute might also seem appropriate for this purpose,
-historically the \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} attribute was used before the
-\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} was introduced 
+historically the \DWATlowpc{} attribute was used before the
+\DWATentrypc{} was introduced