DW_AT_t* through DW_AT_v* attributes table entries done.
[dwarf-doc.git] / dwarf5 / latexdoc / programscope.tex
index 0f321be..408f8ab 100644 (file)
@@ -65,7 +65,8 @@ partial compilation unit (see
 Section \refersec{chap:importedunitentries}).
 
 
-Compilation unit entries may have the following attributes:
+Compilation unit entries may have the following 
+attributes:
 
 \begin{enumerate}[1]
 \item Either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of
@@ -86,6 +87,7 @@ containing the full or relative path name of the primary
 source file from which the compilation unit was derived.
 
 \item A \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} attribute whose constant value is an
+\hypertarget{chap:DWATlanguageprogramminglanguage}
 integer code indicating the source language of the compilation
 unit. The set of language names and their meanings are given
 in 
@@ -122,6 +124,7 @@ Language name & Meaning\\ \hline
 \end{figure}
 
 \item A \livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list} attribute whose value is a section
+\hypertarget{chap:DWATstmtlistlinenumberinformationforunit}
 offset to the line number information for this compilation
 unit.  This information is placed in a separate object file
 section from the debugging information entries themselves. The
@@ -151,6 +154,7 @@ unit in whatever form makes sense for the host system.
 
 \item  A \livelink{chap:DWATproducer}{DW\-\_AT\-\_producer} attribute whose value is a null\dash
 terminated string containing information about the compiler
+\hypertarget{chap:DWATproducercompileridentification}
 that produced the compilation unit. The actual contents of
 the string will be specific to each producer, but should
 begin with the name of the compiler vendor or some other
@@ -158,7 +162,9 @@ identifying character sequence that should avoid confusion
 with other producer values.
 
 
-\item  A \livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} attribute whose integer
+\item  A \livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} 
+attribute whose integer
+\hypertarget{chap:DWATidentifiercaseidentifiercaserule}
 constant value is a code describing the treatment
 of identifiers within this compilation unit. The
 set of identifier case codes is given in Figure
@@ -214,7 +220,10 @@ entries used by entries in the current compilation unit
 This attribute provides a consumer a way to find the definition
 of base types for a compilation unit that does not itself
 contain such definitions. This allows a consumer, for example,
-to interpret a type conversion to a base type correctly.
+to interpret a type conversion to a base type 
+% getting this link target at the right spot is tricky.
+\hypertarget{chap:DWATuseUTF8compilationunitusesutf8strings}
+correctly.
 
 \item A \livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8} attribute, 
 which is a \livelink{chap:flag}{flag} whose
@@ -250,7 +259,9 @@ of that compilation unit is not valid.
 
 \subsection{Imported Unit Entries}
 \label{chap:importedunitentries}
-The place where a normal or partial unit is imported is
+The 
+\hypertarget{chap:DWATimportimportedunit}
+place where a normal or partial unit is imported is
 represented by a debugging information entry with the 
 tag \livetarg{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}. 
 An imported unit entry contains a
@@ -352,7 +363,9 @@ have a \livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc} attribute whose valu
 the first executable instruction of that initialization code
 (see Section \refersec{chap:entryaddress}).
 
-If the module has been assigned a priority, it may have a
+If 
+\hypertarget{chap:DWATprioritymodulepriority}
+the module has been assigned a priority, it may have a
 \livelink{chap:DWATpriority}{DW\-\_AT\-\_priority} attribute. The value of this attribute is a
 reference to another debugging information entry describing
 a variable with a constant value. The value of this variable
@@ -449,14 +462,18 @@ given another name.
 An imported declaration is represented by one or
 more debugging information entries with the 
 tag \livetarg{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration}. 
-When an overloaded entity
+When 
+\hypertarget{chap:DWATimportimporteddeclaration}
+an overloaded entity
 is imported, there is one imported declaration entry for
 each overloading. Each imported declaration entry has a
 \livelink{chap:DWATimport}{DW\-\_AT\-\_import} attribute, whose value is a reference to the
 debugging information entry representing the declaration that
 is being imported.
 
-An imported declaration may also have a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute
+An imported declaration may also have a 
+\livelink{chap:DWATname}{DW\-\_AT\-\_name}
+attribute
 whose value is a null\dash terminated string containing the
 name, as it appears in the source program, by which the
 imported entity is to be known in the context of the imported
@@ -471,6 +488,7 @@ an entity, regardless of the context in which the importing
 declaration or the imported entity occurs.
 
 \textit{A C++ namespace alias may be represented by an imported
+\hypertarget{chap:DWATimportnamespacealias}
 declaration entry with a name attribute whose value is
 a null\dash terminated string containing the alias name as it
 appears in the source program and an import attribute whose
@@ -479,6 +497,7 @@ namespace extension entry.
 }
 
 \textit{A C++ using declaration may be represented by one or more
+\hypertarget{chap:DWATimportnamespaceusingdeclaration}
 imported declaration entries.  When the using declaration
 refers to an overloaded function, there is one imported
 declaration entry corresponding to each overloading. Each
@@ -523,6 +542,7 @@ renamed in this way is known in the context of the imported
 module entry by the same name as it is declared in the module.
 
 \textit{A C++ using directive may be represented by an imported module
+\hypertarget{chap:DWATimportnamespaceusingdirective}
 entry, with an import attribute referring to the namespace
 entry of the appropriate extension of the namespace (which
 might be the original namespace entry) and no owned entries.
@@ -697,12 +717,18 @@ The attribute indicates whether the subroutine
 or entry point was declared with the ``elemental'' keyword
 or property.
 
-A subprogram entry may have a \livelink{chap:DWATpure}{DW\-\_AT\-\_pure} attribute, which is
+A 
+\hypertarget{chap:DWATpurepurepropertyofasubroutine}
+subprogram entry may have a 
+\livelink{chap:DWATpure}{DW\-\_AT\-\_pure} attribute, which is
 a \livelink{chap:flag}{flag}. 
 The attribute indicates whether the subroutine was
 declared with the ``pure'' keyword or property.
 
-A subprogram entry may have a \livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive} attribute, which
+A 
+\hypertarget{chap:DWATrecursiverecursivepropertyofasubroutine}
+subprogram entry may have a 
+\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive} attribute, which
 is a \livelink{chap:flag}{flag}. 
 The attribute indicates whether the subroutine
 or entry point was declared with the ``recursive'' keyword
@@ -713,7 +739,9 @@ or property.
 \subsection{Subroutine and Entry Point Return Types}
 \label{chap:subroutineandentrypointreturntypes}
 
-If the subroutine or entry point is a function that returns a
+If 
+\hypertarget{chap:DWATtypetypeofsubroutinereturn}
+the subroutine or entry point is a function that returns a
 value, then its debugging information entry has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type}
 attribute to denote the type returned by that function.
 
@@ -800,12 +828,17 @@ for the common \nolink{block} being included
 \subsection{Low-Level Information}
 \label{chap:lowlevelinformation}
 
-A subroutine or entry point entry may have a \livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}
+A 
+\hypertarget{chap:DWATreturnaddrsubroutinereturnaddresssavelocation}
+subroutine or entry point entry may have a 
+\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}
 attribute, whose value is a location description. The location
 calculated is the place where the return address for the
 subroutine or entry point is stored.
 
-A subroutine or entry point entry may also have a
+A 
+\hypertarget{chap:DWATframebasesubroutineframebaseaddress}
+subroutine or entry point entry may also have a
 \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} attribute, whose value is a location
 description that computes the “frame base” for the
 subroutine or entry point. If the location description is
@@ -847,8 +880,11 @@ outer subroutine from within an inner subroutine. The
 \livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link} and \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} attributes allow
 debuggers to support this same kind of referencing.}
 
-If a subroutine or entry point is nested, it may have a
-\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link} attribute, whose value is a location
+If 
+\hypertarget{chap:DWATstaticlinklocationofuplevelframe}
+a subroutine or entry point is nested, it may have a
+\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}
+attribute, whose value is a location
 description that computes the frame base of the relevant
 instance of the subroutine that immediately encloses the
 subroutine or entry point.
@@ -943,7 +979,10 @@ artificially by the compiler for this instantiation.
 \subsection{Inlinable and Inlined Subroutines}
 A declaration or a definition of an inlinable subroutine
 is represented by a debugging information entry with the
-tag \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}. The entry for a subroutine that is
+tag 
+\livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}.
+The entry for a subroutine that is
+\hypertarget{chap:DWATinlineinlinedsubroutine}
 explicitly declared to be available for inline expansion or
 that was expanded inline implicitly by the compiler has a
 \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute whose value is an integer constant. The
@@ -976,8 +1015,10 @@ entry with the tag \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}. Suc
 \paragraph{Abstract Instances}
 \label{chap:abstractinstances}
 Any debugging information entry that is owned (either
+\hypertarget{chap:DWATinlineabstracttinstance}
 directly or indirectly) by a debugging information entry
-that contains the \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute is referred to
+that contains the 
+\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute is referred to
 as an ``abstract instance entry.'' Any subroutine entry
 that contains a \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute whose value is other
 than \livelink{chap:DWINLnotinlined}{DW\-\_INL\-\_not\-\_inlined} is known as 
@@ -1298,6 +1339,7 @@ for discussion and examples.
 \label{chap:trampolines}
 
 \textit{A trampoline is a compiler\dash generated subroutine that serves as
+\hypertarget{chap:DWATtrampolinetargetsubroutine}
 an intermediary in making a call to another subroutine. It may
 adjust parameters and/or the result (if any) as appropriate
 to the combined calling and called execution contexts.}