So now the chapter 2 attributes table has all its links.
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
-type of the data member whose definition they represent.
+type of the data member whose definition they
+% Getting the link target in a good spot is tricky. So putting
+%this one a little early.
+\hypertarget{chap:DWATvariableparameternonconstantparameterflag}
+represent.
\item A \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter} attribute,
which is a \livelink{chap:flag}{flag},
\livetarg{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}
&\livelink{chap:DWATstringlengthstringlengthofstringtype}{String length of string type} \\
\livetarg{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}
-&UPC array bound THREADS scale factor\\
+&\livelink{chap:DWATthreadsscaledupcarrayboundthreadsscalfactor}{UPC array bound THREADS scale factor}\\
\livetarg{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}
-&Target subroutine\\
+&\livelink{chap:DWATtrampolinetargetsubroutine}{Target subroutine} \\
\livetarg{chap:DWATtype}{DW\-\_AT\-\_type}
-&Type of declaration\\
-&Type of subroutine return\\
+&\livelink{chap:DWATtypetypeofdeclaration}{Type of declaration} \\
+&\livelink{chap:DWATtypetypeofsubroutinereturn}{Type of subroutine return} \\
\livetarg{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}
-&Upper bound of subrange\\
+&\livelink{chap:DWATupperboundupperboundofsubrange}{Upper bound of subrange} \\
\livetarg{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}
-&Member location for pointer to member type\\
+&\livelink{chap:DWATuselocationmemberlocationforpointertomembertype}{Member location for pointer to member type} \\
\livetarg{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}
-&Compilation unit uses UTF\dash 8 strings \\
+&\livelink{chap:DWATuseUTF8compilationunitusesutf8strings}{Compilation unit uses UTF-8 strings} \\
\livetarg{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}
-&Non\dash constant parameter \livelink{chap:flag}{flag} \\
+&\livelink{chap:DWATvariableparameternonconstantparameterflag}{Non-constant parameter flag} \\
\livetarg{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}
-&Virtuality indication \\
-&Virtuality of base class \\
-&Virtuality of function \\
+&\livelink{chap:DWATvirtualityvirtualityindication}{Virtuality indication} \\
+&\livelink{chap:DWATvirtualityvirtualityofbaseclass}{Virtuality of base class} \\
+&\livelink{chap:DWATvirtualityvirtualityoffunction}{Virtuality of function} \\
\livetarg{chap:DWATvisibility}{DW\-\_AT\-\_visibility}
-&Visibility of declaration\\
+&\livelink{chap:DWATvisibilityvisibilityofdeclaration}{Visibility of declaration} \\
\livetarg{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}
-&Virtual function vtable slot\\
+&\livelink{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}{Virtual function vtable slot}\\
\end{longtable}
\begin{figure}[here]
\section{Types of Program Entities}
\label{chap:typesofprogramentities}
-Any debugging information entry describing a declaration that
+Any
+\hypertarget{chap:DWATtypetypeofdeclaration}
+debugging information entry describing a declaration that
has a type has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} 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
visible outside of the entity in which they are
declared.}
-The visibility of a declaration is represented
+The
+\hypertarget{chap:DWATvisibilityvisibilityofdeclaration}
+visibility of a declaration is represented
by a \livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} attribute, whose value is a
constant drawn from the set of codes listed in
Figure \ref{fig:visibilitycodes}.
\textit{C++ provides for virtual and pure virtual structure or class
member functions and for virtual base classes.}
-The virtuality of a declaration is represented by a
+The
+\hypertarget{chap:DWATvirtualityvirtualityindication}
+virtuality of a declaration is represented by a
\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute, whose value is a constant drawn
from the set of codes listed in
Figure \ref{fig:virtualitycodes}.
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
\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.
\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.}
and public access is assumed for an entry of an interface,
struct or union.
-If the class referenced by the inheritance entry serves
+If
+\hypertarget{chap:DWATvirtualityvirtualityofbaseclass}
+the class referenced by the inheritance entry serves
as a C++ virtual base class, the inheritance entry has a
\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute.
access is assumed for an entry of a class and public access
is assumed for an entry of a structure, union or interface.
-If the member function entry describes a virtual function,
-then that entry has a \livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute.
+If
+\hypertarget{chap:DWATvirtualityvirtualityoffunction}
+the member function entry describes a virtual function,
+then that entry has a
+\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute.
If
\hypertarget{chap:DWATexplicitexplicitpropertyofmemberfunction}
function, then that entry has a
\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit} attribute.
-An entry for a virtual function also has a
+An
+\hypertarget{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}
+entry for a virtual function also has a
\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location} attribute whose value contains
a location description yielding the address of the slot
for the function within the virtual function table for the
is the amount of
storage needed to hold a value of the subrange type.
-The subrange entry may have a \livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled} attribute,
+The
+\hypertarget{chap:DWATthreadsscaledupcarrayboundthreadsscalfactor}
+subrange entry may have a \livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled} attribute,
which is a \livelink{chap:flag}{flag}.
If present, this attribute indicates whether
this subrange represents a UPC array bound which is scaled
The
\hypertarget{chap:DWATlowerboundlowerboundofsubrange}
-subrange entry may have the attributes
+subrange
+\hypertarget{chap:DWATupperboundupperboundofsubrange}
+entry may have the attributes
\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}
and \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound} to specify, respectively, the lower
and upper bound values of the subrange. The \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}
information entry for the class or structure to whose members
objects of this type may point.
-The pointer to member entry has a \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} attribute
+The
+\hypertarget{chap:DWATuselocationmemberlocationforpointertomembertype}
+pointer to member entry has a
+\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} attribute
whose value is a location description that computes the
address of the member of the class to which the pointer to
member entry points.