% These each need to link to definition page: FIXME
\begin{figure}[here]
\autorows[0pt]{c}{2}{l}{
-\addtoindex{DW\_TAG\_access\_declaration},
-\addtoindex{DW\_TAG\_array\_type},
-\addtoindex{DW\_TAG\_base\_type},
-\addtoindex{DW\_TAG\_catch\_block},
-\addtoindex{DW\_TAG\_class\_type},
-\addtoindex{DW\_TAG\_common\_block},
-\addtoindex{DW\_TAG\_common\_inclusion},
-\addtoindex{DW\_TAG\_compile\_unit},
-\addtoindex{DW\_TAG\_condition},
-\addtoindex{DW\_TAG\_const\_type},
-\addtoindex{DW\_TAG\_constant},
-\addtoindex{DW\_TAG\_dwarf\_procedure},
-\addtoindex{DW\_TAG\_entry\_point},
-\addtoindex{DW\_TAG\_enumeration\_type},
-\addtoindex{DW\_TAG\_enumerator},
-\addtoindex{DW\_TAG\_file\_type},
-\addtoindex{DW\_TAG\_formal\_parameter},
-\addtoindex{DW\_TAG\_friend},
-\addtoindex{DW\_TAG\_imported\_declaration},
-\addtoindex{DW\_TAG\_imported\_module},
-\addtoindex{DW\_TAG\_imported\_unit},
-\addtoindex{DW\_TAG\_inheritance},
-\addtoindex{DW\_TAG\_inlined\_subroutine},
-\addtoindex{DW\_TAG\_interface\_type},
-\addtoindex{DW\_TAG\_label},
-\addtoindex{DW\_TAG\_lexical\_block},
-\addtoindex{DW\_TAG\_module},
-\addtoindex{DW\_TAG\_member},
-\addtoindex{DW\_TAG\_namelist},
-\addtoindex{DW\_TAG\_namelist\_item},
-\addtoindex{DW\_TAG\_namespace},
-\addtoindex{DW\_TAG\_packed\_type},
-\addtoindex{DW\_TAG\_partial\_unit},
-\addtoindex{DW\_TAG\_pointer\_type},
-\addtoindex{DW\_TAG\_ptr\_to\_member\_type},
-\addtoindex{DW\_TAG\_reference\_type},
-\addtoindex{DW\_TAG\_restrict\_type},
-\addtoindex{DW\_TAG\_rvalue\_reference\_type},
-\addtoindex{DW\_TAG\_set\_type},
-\addtoindex{DW\_TAG\_shared\_type},
-\addtoindex{DW\_TAG\_string\_type},
-\addtoindex{DW\_TAG\_structure\_type},
-\addtoindex{DW\_TAG\_subprogram},
-\addtoindex{DW\_TAG\_subrange\_type},
-\addtoindex{DW\_TAG\_subroutine\_type},
-\addtoindex{DW\_TAG\_template\_alias},
-\addtoindex{DW\_TAG\_template\_type\_parameter},
-\addtoindex{DW\_TAG\_template\_value\_parameter},
-\addtoindex{DW\_TAG\_thrown\_type},
-\addtoindex{DW\_TAG\_try\_block},
-\addtoindex{DW\_TAG\_typedef},
-\addtoindex{DW\_TAG\_type\_unit},
-\addtoindex{DW\_TAG\_union\_type},
-\addtoindex{DW\_TAG\_unspecified\_parameters},
-\addtoindex{DW\_TAG\_unspecified\_type},
-\addtoindex{DW\_TAG\_variable},
-\addtoindex{DW\_TAG\_variant},
-\addtoindex{DW\_TAG\_variant\_part},
-\addtoindex{DW\_TAG\_volatile\_type},
-\addtoindex{DW\_TAG\_with\_stmt},
+\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},
+\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},
+\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},
}
\caption{Tag names}\label{fig:tagnames}
\end{figure}
An unspecified (implicit, unknown, ambiguous or nonexistent)
type is represented by a debugging information entry with
-the tag DW\_TAG\_unspecified\_type. If a name has been given
+the tag \livetarg{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}.
+If a name has been given
to the type, then the corresponding unspecified type entry
has a DW\_AT\_name attribute whose value is a null\dash terminated
string containing the name as it appears in the source program.
\livetarg{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type} & Pointer to an object of the type being modified \\
\livetarg{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}& C++ (lvalue) reference to an object of the type
being modified \\
-\livetarg{chap:DWTAGrestrictype}{DW\_TAG\_restrict\_type}&C restrict qualified type \\
+\livetarg{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type}&C restrict qualified type \\
\livetarg{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type} & C++ rvalue reference to an object of the type
being modified \\
\livetarg{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type}&UPC shared qualified type \\
the tag type.
Each variant of a particular variant part is represented by
-a debugging information entry with the tag DW\_TAG\_variant
+a debugging information entry with the
+tag \livetarg{chap:DWTAGvariant}{DW\_TAG\_variant}
and is a child of the variant part entry. The value that
selects a given variant may be represented in one of three
ways. The variant entry may have a DW\_AT\_discr\_value attribute
user\dash defined type.
A subroutine type is represented by a debugging information
-entry with the tag DW\_TAG\_subroutine\_type. If a name has
+entry with the
+tag \livetarg{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type}.
+If a name has
been given to the subroutine type in the source program,
then the corresponding subroutine type entry has a DW\_AT\_name
attribute whose value is a null\dash terminated string containing
the bounds of array dimensions.}
A subrange type is represented by a debugging information
-entry with the tag DW\_TAG\_subrange\_type. If a name has been
+entry with the
+tag \livetarg{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}.
+If a name has been
given to the subrange type, then the subrange type entry
has a DW\_AT\_name attribute whose value is a null\dash terminated
string containing the subrange type name as it appears in