DW_AT_c* in attribute table now linked per DWARF4.
[dwarf-doc.git] / dwarf5 / latexdoc / programscope.tex
index de8f3e3..dc0c59b 100644 (file)
@@ -137,7 +137,11 @@ the .debug\_macinfo section of the first byte of the macro
 information for this compilation unit 
 (see Section \refersec{chap:macroinformation}).
 
-\item  A \livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} attribute whose value is a
+\item  A 
+\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} 
+attribute 
+\hypertarget{chap:DWATcompdircompilationdirectory}
+whose value is a
 null\dash terminated string containing the current working directory
 of the compilation command that produced this compilation
 unit in whatever form makes sense for the host system.
@@ -195,7 +199,10 @@ access those names.
 
 \item A \livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types} attribute whose value is a reference.
 
-This attribute points to a debugging information entry
+
+This 
+\hypertarget{chap:DWATbasetypesprimitivedatatypesofcompilationunit}
+attribute points to a debugging information entry
 representing another compilation unit.  It may be used
 to specify the compilation unit containing the base type
 entries used by entries in the current compilation unit
@@ -608,7 +615,10 @@ the standard calling conventions for the target architecture
 and will therefore not be safe to call from within a debugger.
 }
 
-A subroutine entry may contain a \livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}
+A subroutine entry may 
+\hypertarget{chap:DWATcallingconventionsubprogramcallingconvention}
+contain a 
+\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}
 attribute, whose value is an integer constant. The set of
 calling convention codes is given in 
 Figure \refersec{fig:callingconventioncodes}.
@@ -718,8 +728,14 @@ for this purpose, historically the \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_
 was used before the \livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc} was introduced (in DWARF
 Version 3). There is insufficient reason to change this.}
 
-Subroutines and entry points may also have \livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} and
-\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} attributes, as appropriate, to specify
+
+Subroutines and entry points 
+\hypertarget{chap:DWATaddressclasssubroutineorsubroutinetype}
+may also have 
+\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} 
+and
+\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} attributes,
+as appropriate, to specify
 which segments the code for the subroutine resides in and
 the addressing mode to be used in calling that subroutine.
 
@@ -748,10 +764,13 @@ The unspecified parameters of a variable parameter list are
 represented by a debugging information entry with the tag
 \livetarg{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}.
 
-The entry for a subroutine that includes a Fortran common \nolink{block}
+The entry for a subroutine that includes a 
+Fortran \livelink{chap:fortrancommonblock}{common} \livelink{chap:commonblockentry}{block}
+\index{common block|see{Fortran common block}}
 has a child entry with the 
 tag \livetarg{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion}. 
 The
+\hypertarget{chap:commonreferencecommonblockusage}
 common inclusion entry has a 
 \livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference} attribute
 whose value is a reference to the debugging information entry
@@ -1013,7 +1032,14 @@ attribute, representing the first executable instruction of
 the inline expansion (see 
 Section \refersec{chap:entryaddress}).
 
-An inlined subroutine entry may also have \livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file},
+% Positions of the 3 targets here is a bit arbitrary.
+An inlined 
+\hypertarget{chap:DWATcalllinelinenumberofinlinedsubroutinecall}
+subroutine 
+\hypertarget{chap:DWATcallcolumncolumnpositionofinlinedsubroutinecall}
+entry 
+\hypertarget{chap:DWATcallfilefilecontaininginlinedsubroutinecall}
+may also have \livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file},
 \livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line} and \livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column} attributes, 
 each of whose
 value is an integer constant. These attributes represent the
@@ -1029,7 +1055,10 @@ The call file, call line and call column coordinates do not
 describe the coordinates of the subroutine declaration that
 was inlined, rather they describe the coordinates of the call.
 
-An inlined subroutine entry may have a \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}
+An inlined subroutine entry 
+\hypertarget{chap:DWATconstexprcompiletimeconstantfunction}
+may have a 
+\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}
 attribute, which is a \livelink{chap:flag}{flag} 
 whose presence indicates that the
 subroutine has been evaluated as a compile\dash time constant. Such
@@ -1076,7 +1105,10 @@ are not specific to the concrete instance (but present in
 the abstract instance) and need include only attributes that
 are specific to the concrete instance (but omitted in the
 abstract instance). In place of these omitted attributes, each
-concrete inlined instance entry has a \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}
+\hypertarget{chap:DWATabstractorigininlineinstance}
+concrete inlined instance entry 
+has a 
+\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}
 attribute that may be used to obtain the missing information
 (indirectly) from the associated abstract instance entry. The
 value of the abstract origin attribute is a reference to the
@@ -1160,7 +1192,12 @@ The DWARF representation of a concrete out\dash of\dash line instance
 of an inlined subroutine is essentially the same as for a
 concrete inlined instance of that subroutine (as described in
 the preceding section). The representation of such a concrete
-out\dash of\dash line instance makes use of \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}
+% It is critical that the hypertarget and livelink be
+% separated to avoid problems with latex.
+out\dash of\dash line instance 
+\hypertarget{chap:DWATabstractoriginoutoflineinstance}
+makes use of 
+\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}
 attributes in exactly the same way as they are used for
 a concrete inlined instance (that is, as references to
 corresponding entries within the associated abstract instance
@@ -1318,27 +1355,28 @@ either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
 whose values encode the contiguous or non-contiguous address
 ranges, respectively, of the machine instructions generated
-for the lexical \livelink(chap:lexicalblock}{block} 
+for the lexical \livelink{chap:lexicalblock}{block} 
 (see Section \refersec{chap:codeaddressesandranges}).
 
-If a name has been given to the lexical \livelink(chap:lexicalblock}{block} 
+If a name has been given to the 
+lexical \livelink{chap:lexicalblock}{block} 
 in the source
 program, then the corresponding 
 lexical \livelink{chap:lexicalblockentry}{block} entry has a
 \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute whose 
 value is a null\dash terminated string
-containing the name of the lexical \livelink(chap:lexicalblock}{block} 
+containing the name of the lexical \livelink{chap:lexicalblock}{block} 
 as it appears in
 the source program.
 
 \textit{This is not the same as a C or C++ label (see below).}
 
-The lexical \livelink(chap:lexicalblockentry}{block} entry owns 
+The lexical \livelink{chap:lexicalblockentry}{block} entry owns 
 debugging information entries that
-describe the declarations within that lexical \livelink(chap:lexicalblock}{block}. 
+describe the declarations within that lexical \livelink{chap:lexicalblock}{block}. 
 There is
 one such debugging information entry for each local declaration
-of an identifier or inner lexical \livelink(chap:lexicalblock}{block}.
+of an identifier or inner lexical \livelink{chap:lexicalblock}{block}.
 
 \section{Label Entries}
 \label{chap:labelentries}
@@ -1392,7 +1430,7 @@ the with statement.
 \section{Try and Catch Block Entries}
 \label{chap:tryandcatchblockentries}
 
-\textit{In C++ a lexical \livelink(chap:lexicalblock}{block} may be 
+\textit{In C++ a lexical \livelink{chap:lexicalblock}{block} may be 
 designated as a ``catch \nolink{block}.'' 
 A catch \livetargi{chap:catchblock}{block}{catch block} is an 
 exception handler that handles