The new taglink.py app created links from all uses of TAGS
[dwarf-doc.git] / dwarf5 / latexdoc / datarepresentation.tex
index c458c5b..b156429 100644 (file)
@@ -21,7 +21,8 @@ appropriate prefix (DW\_TAG, DW\_AT, DW\_END, DW\_ATE, DW\_OP,
 DW\_LANG, DW\_LNE, DW\_CC or 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 \livetarg{chap:DWTAGlouser}{DW\_TAG\_lo\_user} and 
+\livetarg{chap:DWTAGhiuser}{DW\_TAG\_hi\_user}.}
 Values in the
 range between prefix\_lo\_user and prefix\_hi\_user inclusive,
 are reserved for vendor specific extensions. Vendors may
@@ -248,14 +249,14 @@ the object file. Each such contribution consists of a
 compilation unit header 
 (see Section \refersec{datarep:compilationunitheader}) 
 followed by a
-single DW\_TAG\_compile\_unit or DW\_TAG\_partial\_unit debugging
+single \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging
 information entry, together with its children.
 
 For each type defined in a compilation unit, a contribution may
 be made to the .debug\_types section of the object file. Each
 such contribution consists of a type unit header 
 (see Section \refersec{datarep:typeunitheader}) 
-followed by a DW\_TAG\_type\_unit entry, together with
+followed by a \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit} entry, together with
 its children.
 
 Each debugging information entry begins with a code that
@@ -732,68 +733,68 @@ Table \refersec{tab:attributeformencodings}.
 \endfoot
   \hline
 \endlastfoot
-DW\_TAG\_array\_type &0x01 \\
-DW\_TAG\_class\_type&0x02 \\
-DW\_TAG\_entry\_point&0x03 \\
-DW\_TAG\_enumeration\_type&0x04 \\
-DW\_TAG\_formal\_parameter&0x05 \\
-DW\_TAG\_imported\_declaration&0x08 \\
-DW\_TAG\_label&0x0a \\
-DW\_TAG\_lexical\_block&0x0b \\
-DW\_TAG\_member&0x0d \\
-DW\_TAG\_pointer\_type&0x0f \\
-DW\_TAG\_reference\_type&0x10 \\
-DW\_TAG\_compile\_unit&0x11 \\
-DW\_TAG\_string\_type&0x12 \\
-DW\_TAG\_structure\_type&0x13 \\
-DW\_TAG\_subroutine\_type&0x15 \\
-DW\_TAG\_typedef&0x16 \\
-DW\_TAG\_union\_type&0x17 \\
-DW\_TAG\_unspecified\_parameters&0x18  \\
-DW\_TAG\_variant&0x19  \\
-DW\_TAG\_common\_block&0x1a  \\
-DW\_TAG\_common\_inclusion&0x1b  \\
-DW\_TAG\_inheritance&0x1c  \\
-DW\_TAG\_inlined\_subroutine&0x1d  \\
-DW\_TAG\_module&0x1e  \\
-DW\_TAG\_ptr\_to\_member\_type&0x1f  \\
-DW\_TAG\_set\_type&0x20  \\
-DW\_TAG\_subrange\_type&0x21  \\
-DW\_TAG\_with\_stmt&0x22  \\
-DW\_TAG\_access\_declaration&0x23  \\
-DW\_TAG\_base\_type&0x24  \\
-DW\_TAG\_catch\_block&0x25  \\
-DW\_TAG\_const\_type&0x26  \\
-DW\_TAG\_constant&0x27  \\
-DW\_TAG\_enumerator&0x28  \\
-DW\_TAG\_file\_type&0x29  \\
-DW\_TAG\_friend&0x2a  \\
-DW\_TAG\_namelist&0x2b    \\
-DW\_TAG\_namelist\_item&0x2c    \\
-DW\_TAG\_packed\_type&0x2d    \\
-DW\_TAG\_subprogram&0x2e    \\
-DW\_TAG\_template\_type\_parameter&0x2f    \\
-DW\_TAG\_template\_value\_parameter&0x30    \\
-DW\_TAG\_thrown\_type&0x31    \\
-DW\_TAG\_try\_block&0x32    \\
-DW\_TAG\_variant\_part&0x33    \\
-DW\_TAG\_variable&0x34    \\
-DW\_TAG\_volatile\_type&0x35    \\
-DW\_TAG\_dwarf\_procedure&0x36     \\
-DW\_TAG\_restrict\_type&0x37      \\
-DW\_TAG\_interface\_type&0x38      \\
-DW\_TAG\_namespace&0x39      \\
-DW\_TAG\_imported\_module&0x3a      \\
-DW\_TAG\_unspecified\_type&0x3b      \\
-DW\_TAG\_partial\_unit&0x3c      \\
-DW\_TAG\_imported\_unit&0x3d      \\
-DW\_TAG\_condition&0x3f      \\
-DW\_TAG\_shared\_type&0x40      \\
-DW\_TAG\_type\_unit \ddag &0x41      \\
-DW\_TAG\_rvalue\_reference\_type \ddag &0x42      \\
-DW\_TAG\_template\_alias \ddag &0x43      \\
-DW\_TAG\_lo\_user&0x4080      \\
-DW\_TAG\_hi\_user&0xffff      \\
+\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}&0x3f      \\
+\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type}&0x40      \\
+\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit} \ddag &0x41      \\
+\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type} \ddag &0x42      \\
+\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias} \ddag &0x43      \\
+\livelink{chap:DWTAGlouser}{DW\_TAG\_lo\_user}&0x4080      \\
+\livelink{chap:DWTAGhiuser}{DW\_TAG\_hi\_user}&0xffff      \\
 \end{longtable}
 \ddag  TAG new in DWARF Version 4 
 \end{centering}
@@ -1422,7 +1423,7 @@ languages they represent are not well supported.
 Table \refersec{tab:languageencodings}
 also shows the default lower bound, if any, assumed for
 an omitted DW\_AT\_lower\_bound attribute in the context of a
-DW\_TAG\_subrange\_type debugging information entry for each
+\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type} debugging information entry for each
 defined language.
 
 \begin{centering}
@@ -2107,28 +2108,28 @@ DW\_FORM\_flag,
 DW\_FORM\_string,
 and DW\_FORM\_block.
 
-\item If the tag in Step 3 is one of DW\-\_TAG\-\_pointer\-\_type,
-DW\-\_TAG\-\_reference\-\_type
-DW\-\_TAG\-\_rvalue\-\_reference\-\_type,
-DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type
-or DW\-\_TAG\-\_friend, and the referenced
+\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 DW\-\_AT\-\_type or 
 DW\-\_AT\-\_friend attribute) has a
 DW\-\_AT\-\_name attribute, append to S the letter 'N', the DWARF
 attribute code (DW\-\_AT\-\_type or 
 DW\-\_AT\-\_friend), the context of
 the type (according to the method in Step 2), the letter 'E',
-and the name of the type. For DW\-\_TAG\-\_friend, if the referenced
-entry is a DW\-\_TAG\-\_subprogram, the context is omitted and the
+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
 name to be used is the ABI-specific name of the subprogram
 (e.g., the mangled linker name).
 
 
-\item 6.If the tag in Step 3 is not one of DW\-\_TAG\-\_pointer\-\_type,
-DW\-\_TAG\-\_reference\-\_type
-DW\-\_TAG\-\_rvalue\-\_reference\-\_type,
-DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type, or 
-DW\-\_TAG\-\_friend, but has
+\item 6.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 DW\-\_AT\-\_type attribute, or if the referenced type (via
 the DW\-\_AT\-\_type or 
 DW\-\_AT\-\_friend attribute) does not have a