This indexes letters f, g, and h.
authorDavid Anderson <davea42@earthlink.net>
Wed, 21 Nov 2012 20:22:47 +0000 (12:22 -0800)
committerDavid Anderson <davea42@earthlink.net>
Wed, 21 Nov 2012 20:22:47 +0000 (12:22 -0800)
It also has additions for DW_AT_high_pc, low_pc, and ranges
that I noticed were incomplete.

Added a note to the document README on 'undefined' references:
They are part of the multi-pass nature of latex and not
always really undefined.

dwarf5/latexdoc/README
dwarf5/latexdoc/compression.tex
dwarf5/latexdoc/dataobject.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/examples.tex
dwarf5/latexdoc/generaldescription.tex
dwarf5/latexdoc/introduction.tex
dwarf5/latexdoc/otherdebugginginformation.tex
dwarf5/latexdoc/programscope.tex
dwarf5/latexdoc/typeentries.tex

index 3db7e9f..d0f791c 100644 (file)
@@ -1,5 +1,20 @@
 
 
+On undefined references while building the document: In
+early latex passes forward references tend to be reported as
+'undefined'.   An example is:
 
 
+LaTeX Warning: Reference `chap:generaldescription' on page
+3 undefined on input line 59.
+
+Because the side-files latex generates help resolve those in
+later passes the simple existence of 'undefined' in a 'make'
+on a 'clean' directory should not be alarming as these will
+usually be from an early pass.  Run a second 'make' without
+doing a 'make clean' (thus using the side-files from the first
+'make') and if all is well the second 'make' will not generate
+any messages about 'undefined'.
+
+============================
 
 On Linux:
 On modern linux, here is the set of steps to build a pdf.
 
 On Linux:
 On modern linux, here is the set of steps to build a pdf.
@@ -27,7 +42,7 @@ To Be added
 
 
 The DWARF5 latex document was first added here May 10, 2012.
 
 
 The DWARF5 latex document was first added here May 10, 2012.
-The tentative plan is to achieve a complete
-(insofar as is possible) identical-to-DWARF4 document.
-Mark that with a git tag.   Then proceed to change the document
-with DWARF5 changes.
+The plan is to achieve a complete (insofar as is possible)
+identical-to-DWARF4 document (which is referred to as DWARF
+4.1).  Mark that with a git tag.   Then proceed to change
+the document with DWARF5 changes.
index d6e7c33..23576b7 100644 (file)
@@ -330,7 +330,7 @@ a \addtoindex{C++} namespace declaration or a function, for example, is
 not a good candidate because the entities included are not
 necessarily file level entities.
 
 not a good candidate because the entities included are not
 necessarily file level entities.
 
-This also applies to Fortran INCLUDE lines when declarations
+This also applies to \addtoindex{Fortran} INCLUDE lines when declarations
 are included into a procedure or module context.
 
 Consequently a compiler must use \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} (instead
 are included into a procedure or module context.
 
 Consequently a compiler must use \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} (instead
@@ -512,7 +512,7 @@ globally visible (in accordance with
 \subsubsection{Fortran Example}
 
 
 \subsubsection{Fortran Example}
 
 
-For a Fortran 
+For a \addtoindex{Fortran}
 \addtoindexx{DWARF duplicate elimination!Fortran example}
 example, consider 
 Figure \refersec{app:duplicateeliminationexample2fortransource}.
 \addtoindexx{DWARF duplicate elimination!Fortran example}
 example, consider 
 Figure \refersec{app:duplicateeliminationexample2fortransource}.
@@ -522,6 +522,7 @@ Figure \refersec{app:duplicateeliminationexample2fortransource}.
 \label{app:duplicateeliminationexample2fortransource}
 
 File CommonStuff.fh
 \label{app:duplicateeliminationexample2fortransource}
 
 File CommonStuff.fh
+\addtoindexx{Fortran}
 
 \begin{lstlisting}
 IMPLICIT INTEGER(A-Z)
 
 \begin{lstlisting}
 IMPLICIT INTEGER(A-Z)
@@ -542,7 +543,9 @@ END
 
 Section \refersec{app:duplicateeliminationexample2dwarfsectiongroup}
 shows the section group 
 
 Section \refersec{app:duplicateeliminationexample2dwarfsectiongroup}
 shows the section group 
-corresponding to the included file CommonStuff.fh.
+corresponding to the included file 
+\addtoindexx{Fortran example}
+CommonStuff.fh.
 
 \paragraph{Duplicate elimination example 2: DWARF section group}
 \label{app:duplicateeliminationexample2dwarfsectiongroup}
 
 \paragraph{Duplicate elimination example 2: DWARF section group}
 \label{app:duplicateeliminationexample2dwarfsectiongroup}
@@ -1146,7 +1149,7 @@ how the bytes of the flattened type description are formed
 during the type signature computation algorithm of Section
 Section \refersec{datarep:typesignaturecomputation}. 
 
 during the type signature computation algorithm of Section
 Section \refersec{datarep:typesignaturecomputation}. 
 
-
+%FIXME: The index entries here with \addtoindexx are ineffective.
 \begin{alltt}
 signature
     : opt-context debug-entry attributes children
 \begin{alltt}
 signature
     : opt-context debug-entry attributes children
@@ -1181,17 +1184,17 @@ tag-code
 at-code
     : <ULEB128>
 form-encoded-value
 at-code
     : <ULEB128>
 form-encoded-value
-    : \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} value
-    : \livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} value
-    : \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} string
-    : \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} \nolink{block}
-\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
+    : \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} value \addtoindexx{constant class}
+    : \livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} value \addtoindexx{flag class}
+    : \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} string \addtoindexx{string class}
+    : \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} \nolink{block} \addtoindexx{block class}
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} \addtoindexx{string class}
     : '\\x08'
     : '\\x08'
-\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}
+\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}  \addtoindexx{block class}
     : '\\x09'
     : '\\x09'
-\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} \addtoindexx{flag class}
     : '\\x0c'
     : '\\x0c'
-\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}
+\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \addtoindexx{constant class}
     : '\\x0d'
 value
     : <SLEB128>
     : '\\x0d'
 value
     : <SLEB128>
index 8f393dd..a986ecd 100644 (file)
@@ -11,7 +11,9 @@ a common \livelink{chap:commonblockentry}{block}.
 \label{chap:dataobjectentries}
 \addtoindexx{data object entries}
 
 \label{chap:dataobjectentries}
 \addtoindexx{data object entries}
 
-Program variables, formal parameters and constants are
+Program variables, 
+\addtoindexx{formal parameter entry}
+formal parameters and constants are
 represented by debugging information entries with the tags
 \livetarg{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}\addtoindexx{variable entry}, 
 \livetarg{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}\addtoindexx{formal parameter entry} and 
 represented by debugging information entries with the tags
 \livetarg{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}\addtoindexx{variable entry}, 
 \livetarg{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}\addtoindexx{formal parameter entry} and 
@@ -109,7 +111,9 @@ parameter entry represents an optional parameter.
 
 \item A \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} attribute 
 \addtoindexx{default value attribute}
 
 \item A \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} attribute 
 \addtoindexx{default value attribute}
-for a formal parameter
+for 
+\addtoindexx{formal parameter entry!with default value}
+a formal parameter
 \hypertarget{chap:DWATdefaultvaluedefaultvalueofparameter}
 entry. The value of this attribute is a reference to the
 debugging information entry for a variable or subroutine,
 \hypertarget{chap:DWATdefaultvaluedefaultvalueofparameter}
 entry. The value of this attribute is a reference to the
 debugging information entry for a variable or subroutine,
@@ -257,7 +261,9 @@ Section \refersec{chap:linkagenames}.
 \section{Common Block Entries}
 \label{chap:commonblockentries}
 A Fortran \livetargi{chap:fortrancommonblock}{common}{Fortran!common block} \livetargi{chap:commonblockentry}{block}{common block entry} 
 \section{Common Block Entries}
 \label{chap:commonblockentries}
 A Fortran \livetargi{chap:fortrancommonblock}{common}{Fortran!common block} \livetargi{chap:commonblockentry}{block}{common block entry} 
-may be described by a debugging
+may 
+\addtoindexx{Fortran!common block}
+be described by a debugging
 information entry with the 
 tag \livetarg{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}. 
 The
 information entry with the 
 tag \livetarg{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}. 
 The
index 0e3c8bd..5689109 100644 (file)
@@ -610,7 +610,8 @@ or location description
 (see Section \refersec{chap:locationdescriptions}).
 
 \item \livelink{chap:flag}{flag} \\
 (see Section \refersec{chap:locationdescriptions}).
 
 \item \livelink{chap:flag}{flag} \\
-A flag is represented explicitly as a single byte of data
+A flag \addtoindexx{flag class}
+is represented explicitly as a single byte of data
 (\livetarg{chap:DWFORMflag}{DW\-\_FORM\-\_flag}) or 
 implicitly (\livetarg{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present}). 
 In the
 (\livetarg{chap:DWFORMflag}{DW\-\_FORM\-\_flag}) or 
 implicitly (\livetarg{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present}). 
 In the
@@ -918,9 +919,9 @@ Child determination name& Value\\ \hline
 \livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}&0x10&\livelink{chap:lineptr}{lineptr} 
         \addtoindex{statement list attribute!encoding} \\
 \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}&0x11&address 
 \livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}&0x10&\livelink{chap:lineptr}{lineptr} 
         \addtoindex{statement list attribute!encoding} \\
 \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}&0x11&address 
-        \addtoindexx{lowpc attribute!encoding}  \\
+        \addtoindexx{low PC attribute!encoding}  \\
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}&0x12&address, constant 
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}&0x12&address, constant 
-        \addtoindexx{highpc attribute!encoding}  \\
+        \addtoindexx{high PC attribute!encoding}  \\
 \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}&0x13&constant 
         \addtoindexx{language attribute!encoding}  \\
 \livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}&0x15&reference 
 \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}&0x13&constant 
         \addtoindexx{language attribute!encoding}  \\
 \livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}&0x15&reference 
index b3dec1f..a9f105a 100644 (file)
@@ -165,7 +165,7 @@ using DWARF.
 
 \subsection{Fortran 90 Example}
 \label{app:fortran90example}
 
 \subsection{Fortran 90 Example}
 \label{app:fortran90example}
-Consider the Fortran 90 source fragment in 
+Consider the \addtoindex{Fortran 90} source fragment in 
 \addtoindexx{array type entry!examples}
 Figure \refersec{fig:fortran90examplesourcefragment}.
 
 \addtoindexx{array type entry!examples}
 Figure \refersec{fig:fortran90examplesourcefragment}.
 
@@ -185,7 +185,7 @@ end do
 \end{figure}
 
 For allocatable and pointer arrays, it is essentially required
 \end{figure}
 
 For allocatable and pointer arrays, it is essentially required
-by the Fortran 90 semantics that each array consist of 
+by the \addtoindex{Fortran 90} semantics that each array consist of 
 \addtoindexx{descriptor!array}
 two
 \addtoindexx{array!descriptor for}
 \addtoindexx{descriptor!array}
 two
 \addtoindexx{array!descriptor for}
@@ -206,7 +206,9 @@ Note, however, that it is
 a property of the design that 1) a debugger needs no builtin
 knowledge of this structure and 2) there does not need to
 be an explicit representation of this structure in the DWARF
 a property of the design that 1) a debugger needs no builtin
 knowledge of this structure and 2) there does not need to
 be an explicit representation of this structure in the DWARF
-input to the debugger.
+input to the 
+\addtoindexx{Fortran 90}
+debugger.
 
 \begin{figure}[here]
 \begin{lstlisting}
 
 \begin{figure}[here]
 \begin{lstlisting}
@@ -260,7 +262,7 @@ object will not have a
 a descriptor does have a \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} attribute. In
 that case the object doubles as its own descriptor.)
 
 a descriptor does have a \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} attribute. In
 that case the object doubles as its own descriptor.)
 
-The Fortran 90 derived type array\_ptr can now be redescribed
+The \addtoindex{Fortran 90} derived type array\_ptr can now be redescribed
 in C\dash like terms that expose some of the representation as in
 
 \begin{lstlisting}
 in C\dash like terms that expose some of the representation as in
 
 \begin{lstlisting}
@@ -288,7 +290,9 @@ within an entity of the given type
 \end{enumerate}
 
 
 \end{enumerate}
 
 
-The DWARF description is shown in 
+The DWARF description is shown 
+\addtoindexx{Fortran 90}
+in 
 Section \refersec{app:fortran90exampledwarfdescription}.
 
 \subsection{Fortran 90 example: DWARF description}
 Section \refersec{app:fortran90exampledwarfdescription}.
 
 \subsection{Fortran 90 example: DWARF description}
@@ -391,7 +395,9 @@ Section \refersec{app:fortran90exampledwarfdescription}.
 \subsection{Fortran 90 example continued: DWARF description}
 \label{app:fortran90examplecontinueddwarfdescription}
 
 \subsection{Fortran 90 example continued: DWARF description}
 \label{app:fortran90examplecontinueddwarfdescription}
 
-Suppose the program is stopped immediately following completion
+Suppose 
+\addtoindexx{Fortran 90 example}
+the program is stopped immediately following completion
 of the do loop. Suppose further that the user enters the
 following debug command:
 
 of the do loop. Suppose further that the user enters the
 following debug command:
 
@@ -1616,9 +1622,18 @@ and not in OUTER’s concrete instance. In the abstract
 \addtoindexx{abstract instance!example}
 instance of OUTER, the description of INNER has the full
 complement of attributes that would be expected for a
 \addtoindexx{abstract instance!example}
 instance of OUTER, the description of INNER has the full
 complement of attributes that would be expected for a
-normal subprogram. While attributes such as \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc},
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}, \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}, and so on, typically are omitted
-from an abstract instance because they are not invariant across
+normal subprogram. 
+While attributes such as 
+\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc},
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}, 
+\livelink{chap:DWATlocation}{DW\-\_AT\-\_location},
+and so on, typically are omitted
+\addtoindexx{high PC attribute}
+from 
+\addtoindexx{low PC attribute}
+an 
+\addtoindexx{location attribute}
+abstract instance because they are not invariant across
 instances of the containing abstract instance, in this case
 those same attributes are included precisely because they are
 invariant -- there is only one subprogram INNER to be described
 instances of the containing abstract instance, in this case
 those same attributes are included precisely because they are
 invariant -- there is only one subprogram INNER to be described
index 1b2d8d7..553e93c 100644 (file)
@@ -507,7 +507,6 @@ Many places in this document
 refer
 \addtoindexx{address size|see{size of an address}}
 to the size 
 refer
 \addtoindexx{address size|see{size of an address}}
 to the size 
-\addtoindexx{address!size of an|see{size of an address}}
 of an
 \addtoindexi{address}{size of an address}
 on the target architecture (or equivalently, target machine)
 of an
 \addtoindexi{address}{size of an address}
 on the target architecture (or equivalently, target machine)
@@ -1726,7 +1725,9 @@ The value of
 \addtoindex{declaration file attribute}
 the 
 \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}
 \addtoindex{declaration file attribute}
 the 
 \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}
-attribute corresponds to
+attribute 
+\addtoindexx{file containing declaration}
+corresponds to
 a file number from the line number information table for the
 compilation unit containing the debugging information entry and
 represents the source file in which the declaration appeared
 a file number from the line number information table for the
 compilation unit containing the debugging information entry and
 represents the source file in which the declaration appeared
@@ -1816,11 +1817,18 @@ and
 the like, may have
 
 \begin{itemize}
 the like, may have
 
 \begin{itemize}
-\item A \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of 
-attributes for a single contiguous range of
+\item A \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and 
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of 
+attributes 
+\addtoindexx{high PC attribute}
+for 
+\addtoindexx{low PC attribute}
+a single contiguous range of
 addresses, or
 
 addresses, or
 
-\item A \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute for a non-contiguous range of addresses.
+\item A \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute 
+\addtoindexx{ranges attribute}
+for a non-contiguous range of addresses.
 \end{itemize}
 
 In addition, a non-contiguous range of 
 \end{itemize}
 
 In addition, a non-contiguous range of 
@@ -1843,9 +1851,17 @@ insufficient reason to change this.
 \subsection{Continuous Address Range}
 \label{chap:contiguousaddressranges}
 When the set of addresses of a debugging information entry can
 \subsection{Continuous Address Range}
 \label{chap:contiguousaddressranges}
 When the set of addresses of a debugging information entry can
-be described as a single continguous range, the entry may have
-a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes. The value
-of the \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} attribute is the relocated address of the
+be described as a single continguous range, the entry 
+\addtoindexx{high PC attribute}
+may 
+\addtoindexx{low PC attribute}
+have
+a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and 
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes. 
+The value
+of the 
+\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} attribute 
+is the relocated address of the
 first instruction associated with the entity. If the value of
 the \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} is of class address, it is the relocated
 address of the first location past the last instruction
 first instruction associated with the entity. If the value of
 the \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} is of class address, it is the relocated
 address of the first location past the last instruction
@@ -1864,7 +1880,9 @@ attributes should be produced.
 \label{chap:noncontiguousaddressranges}
 When the set of addresses of a debugging information entry
 cannot be described as a single contiguous range, the entry has
 \label{chap:noncontiguousaddressranges}
 When the set of addresses of a debugging information entry
 cannot be described as a single contiguous range, the entry has
-a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute whose value is of class \livelink{chap:rangelistptr}{rangelistptr}
+a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute 
+\addtoindexx{ranges attribute}
+whose value is of class \livelink{chap:rangelistptr}{rangelistptr}
 and indicates the beginning of a range list. Similarly,
 a \livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} attribute may have a value of class
 \livelink{chap:rangelistptr}{rangelistptr} for the same reason.  
 and indicates the beginning of a range list. Similarly,
 a \livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} attribute may have a value of class
 \livelink{chap:rangelistptr}{rangelistptr} for the same reason.  
@@ -1874,6 +1892,7 @@ in a separate object file section called
 \addtoindex{.debug\_ranges}. A
 range list is indicated by a 
 \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute whose
 \addtoindex{.debug\_ranges}. A
 range list is indicated by a 
 \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute whose
+\addtoindexx{ranges attribute}
 value is represented as an offset from the beginning of the
 \addtoindex{.debug\_ranges} section to the beginning of the range list.
 
 value is represented as an offset from the beginning of the
 \addtoindex{.debug\_ranges} section to the beginning of the range list.
 
index 7c0d64b..8758576 100644 (file)
@@ -188,7 +188,7 @@ Allow attributes to refer to debugging information entries
 in other shared libraries.
 
 \item
 in other shared libraries.
 
 \item
-Add support for Fortran 90 modules as well as allocatable
+Add support for \addtoindex{Fortran 90} modules as well as allocatable
 array and pointer types.
 
 \item
 array and pointer types.
 
 \item
index a1e2126..29c7484 100644 (file)
@@ -509,9 +509,12 @@ This parameter affects the meaning of the special opcodes. See below.
 This parameter affects the meaning of the special opcodes. See below.
 
 \item opcode\_base (ubyte) \\
 This parameter affects the meaning of the special opcodes. See below.
 
 \item opcode\_base (ubyte) \\
-The number assigned to the first special opcode.
+The 
+\addtoindex{opcode\_base}
+number assigned to the first special opcode.
 
 \textit{Opcode base is typically one greater than the highest-numbered
 
 \textit{Opcode base is typically one greater than the highest-numbered
+\addtoindex{opcode\_base}
 standard opcode defined for the specified version of the line
 number information (12 in 
 \addtoindex{DWARF Version 3} and 
 standard opcode defined for the specified version of the line
 number information (12 in 
 \addtoindex{DWARF Version 3} and 
@@ -520,6 +523,7 @@ Version 4, 9 in
 \addtoindexx{DWARF Version 2}
 Version 2).  
 If opcode\_base is less than the typical value,
 \addtoindexx{DWARF Version 2}
 Version 2).  
 If opcode\_base is less than the typical value,
+\addtoindex{opcode\_base}
 then standard opcode numbers greater than or equal to the
 opcode base are not used in the line number table of this unit
 (and the codes are treated as special opcodes). If opcode\_base
 then standard opcode numbers greater than or equal to the
 opcode base are not used in the line number table of this unit
 (and the codes are treated as special opcodes). If opcode\_base
@@ -535,6 +539,7 @@ element corresponds to the opcode whose value
 is opcode\_base - 1.
 
 By increasing opcode\_base, and adding elements to this array,
 is opcode\_base - 1.
 
 By increasing opcode\_base, and adding elements to this array,
+\addtoindex{opcode\_base}
 new standard opcodes can be added, while allowing consumers who
 do not know about these new opcodes to be able to skip them.
 
 new standard opcodes can be added, while allowing consumers who
 do not know about these new opcodes to be able to skip them.
 
@@ -542,7 +547,9 @@ Codes for vendor specific extensions, if any, are described
 just like standard opcodes.
 
 \item include\_directories (sequence of path names) \\
 just like standard opcodes.
 
 \item include\_directories (sequence of path names) \\
-Entries in this sequence describe each path that was searched
+Entries 
+\addtoindexx{include\_directories}
+in this sequence describe each path that was searched
 for included source files in this compilation. (The paths
 include those directories specified explicitly by the user for
 the compiler to search and those the compiler searches without
 for included source files in this compilation. (The paths
 include those directories specified explicitly by the user for
 the compiler to search and those the compiler searches without
@@ -557,7 +564,11 @@ the compilation is understood to be the zeroth entry and is
 not explicitly represented.
 
 \item  file\_names (sequence of file entries) \\
 not explicitly represented.
 
 \item  file\_names (sequence of file entries) \\
-Entries in this sequence describe source files that contribute
+Entries 
+\addtoindexx{file names}
+in 
+\addtoindexx{file\_names}
+this sequence describe source files that contribute
 to the line number information for this compilation unit or is
 used in other contexts, such as in a declaration coordinate or
 a macro file inclusion. Each entry consists of the following
 to the line number information for this compilation unit or is
 used in other contexts, such as in a declaration coordinate or
 a macro file inclusion. Each entry consists of the following
@@ -1374,7 +1385,10 @@ section called
 \addtoindex{.debug\_frame} section
 are aligned on a multiple of the address size relative to
 the start of the section and come in two forms: a Common
 \addtoindex{.debug\_frame} section
 are aligned on a multiple of the address size relative to
 the start of the section and come in two forms: a Common
-Information Entry (CIE) and a Frame Description Entry (FDE).
+\addtoindexx{common information entry}
+Information Entry (CIE) and a 
+\addtoindexx{frame description entry}
+Frame Description Entry (FDE).
 
 \textit{If the range of code addresses for a function is not
 contiguous, there may be multiple CIEs and FDEs corresponding
 
 \textit{If the range of code addresses for a function is not
 contiguous, there may be multiple CIEs and FDEs corresponding
index def5922..e56c97c 100644 (file)
@@ -69,9 +69,16 @@ Compilation unit entries may have the following
 attributes:
 
 \begin{enumerate}[1]
 attributes:
 
 \begin{enumerate}[1]
-\item Either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of
-attributes or a 
+\item Either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and 
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of
+\addtoindexx{high PC attribute}
+attributes 
+\addtoindexx{low PC attribute}
+or 
+\addtoindexx{ranges attribute}
+a 
 \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
 \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
+\addtoindexx{ranges attribute}
 whose values encode 
 \addtoindexx{discontiguous address ranges|see{non-contiguous address ranges}}
 the
 whose values encode 
 \addtoindexx{discontiguous address ranges|see{non-contiguous address ranges}}
 the
@@ -79,8 +86,14 @@ contiguous or
 non\dash contiguous address ranges, respectively,
 of the machine instructions generated for the compilation
 unit (see Section {chap:codeaddressesandranges}).  
 non\dash contiguous address ranges, respectively,
 of the machine instructions generated for the compilation
 unit (see Section {chap:codeaddressesandranges}).  
-A \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} attribute may also
-be specified in combination with \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} to specify the
+A \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} attribute 
+may also
+be specified 
+in combination 
+\addtoindexx{ranges attribute}
+with 
+\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} to specify the
+\addtoindexx{ranges attribute}
 default base address for use in location lists (see Section
 \refersec{chap:locationlists}) and range lists 
 (see Section \refersec{chap:noncontiguousaddressranges}).
 default base address for use in location lists (see Section
 \refersec{chap:locationlists}) and range lists 
 (see Section \refersec{chap:noncontiguousaddressranges}).
@@ -347,7 +360,9 @@ A Modula\dash 2 definition module may be represented by a module
 entry containing a 
 \addtoindex{declaration attribute}
 (\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}). A
 entry containing a 
 \addtoindex{declaration attribute}
 (\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}). A
-\addtoindex{Fortran 90} module may also be represented by a module entry
+\addtoindex{Fortran 90} module 
+\addtoindexx{Fortran!module (Fortran 90)}
+may also be represented by a module entry
 (but no declaration attribute is warranted because \addtoindex{Fortran}
 has no concept of a corresponding module body).}
 
 (but no declaration attribute is warranted because \addtoindex{Fortran}
 has no concept of a corresponding module body).}
 
@@ -364,8 +379,13 @@ the module name as it appears in the source program.
 
 The module entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} 
 
 The module entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} 
-pair of attributes or a 
+pair 
+\addtoindexx{high PC attribute}
+of 
+\addtoindexx{low PC attribute}
+attributes or a 
 \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
 \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
+\addtoindexx{ranges attribute}
 whose values encode the contiguous or non\dash contiguous address
 ranges, respectively, of the machine instructions generated for
 the module initialization code 
 whose values encode the contiguous or non\dash contiguous address
 ranges, respectively, of the machine instructions generated for
 the module initialization code 
@@ -391,7 +411,8 @@ represented as it would be on the target architecture.
 \label{chap:namespaceentries}
 \textit{\addtoindex{C++} has the notion of a namespace, which provides a way to
 implement name hiding, so that names of unrelated things
 \label{chap:namespaceentries}
 \textit{\addtoindex{C++} has the notion of a namespace, which provides a way to
 implement name hiding, so that names of unrelated things
-do not accidentally clash in the global namespace when an
+do not accidentally clash in the 
+\addtoindex{global namespace} when an
 application is linked together.}
 
 A namespace is represented by a debugging information entry
 application is linked together.}
 
 A namespace is represented by a debugging information entry
@@ -428,15 +449,18 @@ function definitions.}
 If a type, variable, or function declared in a namespace is
 defined outside of the body of the namespace declaration,
 that type, variable, or function definition entry has a
 If a type, variable, or function declared in a namespace is
 defined outside of the body of the namespace declaration,
 that type, variable, or function definition entry has a
-\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute whose value is a reference to the
+\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute 
+whose value is a reference to the
 debugging information entry representing the declaration of
 the type, variable or function. Type, variable, or function
 entries with a \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute do not need
 to duplicate information provided by the declaration entry
 referenced by the specification attribute.
 
 debugging information entry representing the declaration of
 the type, variable or function. Type, variable, or function
 entries with a \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute do not need
 to duplicate information provided by the declaration entry
 referenced by the specification attribute.
 
-\textit{The \addtoindex{C++} global namespace
-(the namespace referred to by
+\textit{The \addtoindex{C++} \addtoindex{global namespace}
+(the 
+\addtoindexx{global namespace|see{namespace (C++), global}}
+namespace referred to by
 ``::f'', for example) is not explicitly represented in
 DWARF with a namespace entry (thus mirroring the situation
 in \addtoindex{C++} source).  
 ``::f'', for example) is not explicitly represented in
 DWARF with a namespace entry (thus mirroring the situation
 in \addtoindex{C++} source).  
@@ -535,7 +559,9 @@ provides no means to ``rename''
 an imported entity, other than a namespace).
 }
 
 an imported entity, other than a namespace).
 }
 
-\textit{A \addtoindex{Fortran} use statement with an ``only list'' may be
+\textit{A \addtoindex{Fortran} use statement 
+\addtoindexx{Fortran!use statement}
+with an ``only list'' may be
 represented by a series of imported declaration entries,
 one (or more) for each entity that is imported. An entity
 that is renamed in the importing context may be represented
 represented by a series of imported declaration entries,
 one (or more) for each entity that is imported. An entity
 that is renamed in the importing context may be represented
@@ -577,7 +603,9 @@ entry of the appropriate extension of the namespace (which
 might be the original namespace entry) and no owned entries.
 }
 
 might be the original namespace entry) and no owned entries.
 }
 
-\textit{A \addtoindex{Fortran} use statement with a “rename list” may be
+\textit{A \addtoindex{Fortran} use statement 
+\addtoindexx{Fortran!use statement}
+with a “rename list” may be
 represented by an imported module entry with an import
 attribute referring to the module and owned entries
 corresponding to those entities that are renamed as part of
 represented by an imported module entry with an import
 attribute referring to the module and owned entries
 corresponding to those entities that are renamed as part of
@@ -629,7 +657,11 @@ for an example.
 \label{chap:subroutineandentrypointentries}
 
 The following tags exist to describe 
 \label{chap:subroutineandentrypointentries}
 
 The following tags exist to describe 
-debugging information entries for subroutines and entry
+debugging information entries 
+\addtoindexx{function entry|see{subroutine entry}}
+for 
+\addtoindexx{subroutine entry}
+subroutines and entry
 % FIXME: is entry point entry the right index 'entry'?
 \addtoindexx{entry point entry}
 points:
 % FIXME: is entry point entry the right index 'entry'?
 \addtoindexx{entry point entry}
 points:
@@ -718,7 +750,9 @@ then the debugging information entry for such a subroutine
 may have a calling convention attribute whose value is the
 constant \livetarg{chap:DWCCprogram}{DW\-\_CC\-\_program}.
 
 may have a calling convention attribute whose value is the
 constant \livetarg{chap:DWCCprogram}{DW\-\_CC\-\_program}.
 
-\textit{The \livelink{chap:DWCCprogram}{DW\-\_CC\-\_program} value is intended to support \addtoindex{Fortran} main
+\textit{The \livelink{chap:DWCCprogram}{DW\-\_CC\-\_program} 
+value is intended to support \addtoindex{Fortran} main
+\addtoindexx{Fortran!main program}
 programs which in some implementations may not be callable
 or which must be invoked in a special way. It is not intended
 as a way of finding the entry address for the program.
 programs which in some implementations may not be callable
 or which must be invoked in a special way. It is not intended
 as a way of finding the entry address for the program.
@@ -795,7 +829,12 @@ not have an attribute for the return type.  }
 
 A subroutine entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
 
 A subroutine entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
-whose values encode the contiguous or non\dash contiguous address
+\addtoindexx{ranges attribute}
+whose 
+\addtoindexx{high PC attribute}
+values 
+\addtoindexx{low PC attribute}
+encode the contiguous or non\dash contiguous address
 ranges, respectively, of the machine instructions generated
 for the subroutine (see 
 Section \refersec{chap:codeaddressesandranges}).
 ranges, respectively, of the machine instructions generated
 for the subroutine (see 
 Section \refersec{chap:codeaddressesandranges}).
@@ -852,6 +891,7 @@ range attributes.
 The declarations enclosed by a subroutine or entry point are
 represented by debugging information entries that are owned
 by the subroutine or entry point entry. Entries representing
 The declarations enclosed by a subroutine or entry point are
 represented by debugging information entries that are owned
 by the subroutine or entry point entry. Entries representing
+\addtoindexx{formal parameter}
 the formal parameters of the subroutine or entry point appear
 in the same order as the corresponding declarations in the
 source program.
 the formal parameters of the subroutine or entry point appear
 in the same order as the corresponding declarations in the
 source program.
@@ -867,8 +907,10 @@ represented by a debugging information entry\addtoindexx{unspecified parameters
 with the tag
 \livetarg{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}.
 
 with the tag
 \livetarg{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}.
 
-The entry for a subroutine that includes a 
-\addtoindex{Fortran} 
+The entry for a subroutine that includes 
+\addtoindexx{Fortran!common block}
+a 
+\addtoindex{Fortran} common block
 \livelink{chap:fortrancommonblock}{common} 
 \livelink{chap:commonblockentry}{block}
 \addtoindexx{common block|see{Fortran common block}}
 \livelink{chap:fortrancommonblock}{common} 
 \livelink{chap:commonblockentry}{block}
 \addtoindexx{common block|see{Fortran common block}}
@@ -895,7 +937,9 @@ subroutine or entry point is stored.
 
 A 
 \hypertarget{chap:DWATframebasesubroutineframebaseaddress}
 
 A 
 \hypertarget{chap:DWATframebasesubroutineframebaseaddress}
-subroutine or entry point entry may also have a
+subroutine or entry point entry may also have 
+\addtoindexx{frame base attribute}
+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
 \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
@@ -1014,6 +1058,7 @@ Each
 such entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is a
 null\dash terminated string containing the name of the formal
 type parameter as it appears in the source program. The
 such entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is a
 null\dash terminated string containing the name of the formal
 type parameter as it appears in the source program. The
+\addtoindexx{formal type parameter|see{template type parameter entry}}
 template type parameter entry also has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute
 describing the actual type by which the formal is replaced
 for this instantiation.
 template type parameter entry also has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute
 describing the actual type by which the formal is replaced
 for this instantiation.
@@ -1155,7 +1200,15 @@ the inlining occurs.
 
 Each inlined subroutine entry may have either a 
 \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}
 
 Each inlined subroutine entry may have either a 
 \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}
-and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}
+and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair 
+of 
+\addtoindexx{high PC attribute}
+attributes 
+\addtoindexx{low PC attribute}
+or 
+\addtoindexx{ranges attribute}
+a 
+\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}
 attribute whose values encode the contiguous or non\dash contiguous
 address ranges, respectively, of the machine instructions
 generated for the inlined subroutine (see 
 attribute whose values encode the contiguous or non\dash contiguous
 address ranges, respectively, of the machine instructions
 generated for the inlined subroutine (see 
@@ -1507,7 +1560,13 @@ The lexical \livetargi{chap:lexicalblockentry}{block}{lexical block entry} entry
 may have 
 either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of 
 may have 
 either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of 
-attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
+attributes 
+\addtoindexx{high PC attribute}
+or 
+\addtoindexx{low PC attribute}
+a 
+\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
+\addtoindexx{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} 
 whose values encode the contiguous or non-contiguous address
 ranges, respectively, of the machine instructions generated
 for the lexical \livelink{chap:lexicalblock}{block} 
@@ -1572,8 +1631,14 @@ A with statement is represented by a
 \addtoindexi{debugging information entry}{with statement entry}
 with the tag \livetarg{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}.
 
 \addtoindexi{debugging information entry}{with statement entry}
 with the tag \livetarg{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}.
 
-A with statement entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
+A with statement entry may have either a 
+\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes 
+\addtoindexx{high PC attribute}
+or 
+\addtoindexx{low PC attribute}
+a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
+\addtoindexx{ranges attribute}
 whose values encode the contiguous or non\dash contiguous address
 ranges, respectively, of the machine instructions generated
 for the with statement 
 whose values encode the contiguous or non\dash contiguous address
 ranges, respectively, of the machine instructions generated
 for the with statement 
@@ -1608,8 +1673,15 @@ the tag \livetarg{chap:DWTAGcatchblock}{DW\-\_TAG\-\_catch\-\_block}.
 
 % nolink as we have links just above and do not have a combo link for both
 Both try and catch \nolink{block} entries may have either a
 
 % nolink as we have links just above and do not have a combo link for both
 Both try and catch \nolink{block} entries may have either a
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a
-\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute whose values encode the contiguous
+\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and 
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes 
+\addtoindexx{high PC attribute}
+or 
+\addtoindexx{low PC attribute}
+a
+\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute 
+\addtoindexx{ranges attribute}
+whose values encode the contiguous
 or non\dash contiguous address ranges, respectively, of the
 machine instructions generated for the \livelink{chap:lexicalblock}{block}
 (see Section
 or non\dash contiguous address ranges, respectively, of the
 machine instructions generated for the \livelink{chap:lexicalblock}{block}
 (see Section
@@ -1620,7 +1692,9 @@ least one child entry, an
 entry representing the type of exception accepted by
 that catch \livelink{chap:catchblock}{block}. 
 
 entry representing the type of exception accepted by
 that catch \livelink{chap:catchblock}{block}. 
 
-This child entry has one of the 
+This child entry has one of 
+\addtoindexx{formal parameter entry!in catch block}
+the 
 \addtoindexx{unspecified parameters entry!in catch block}
 tags
 \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} or
 \addtoindexx{unspecified parameters entry!in catch block}
 tags
 \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} or
index a877502..a4b5e52 100644 (file)
@@ -16,7 +16,9 @@ Section \refersec{chap:dataobjectentries}.
 \label{chap:basetypeentries}
 
 \textit{A base type is a data type that is not defined in terms of
 \label{chap:basetypeentries}
 
 \textit{A base type is a data type that is not defined in terms of
-other data types. Each programming language has a set of base
+other data types. 
+\addtoindexx{fundamental type|see{base type entry}}
+Each programming language has a set of base
 types that are considered to be built into that language.}
 
 A base type is represented by a debugging information entry
 types that are considered to be built into that language.}
 
 A base type is represented by a debugging information entry
@@ -905,14 +907,18 @@ entities.
 \subsection{Friends}
 \label{chap:friends}
 
 \subsection{Friends}
 \label{chap:friends}
 
-Each ``friend'' declared by a structure, union or class
+Each ``friend'' 
+\addtoindexx{friend entry}
+declared by a structure, union or class
 \hypertarget{chap:DWATfriendfriendrelationship}
 type may be represented by a debugging information entry
 that is a child of the structure, union or class type entry;
 the friend entry has the 
 tag \livetarg{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}.
 
 \hypertarget{chap:DWATfriendfriendrelationship}
 type may be represented by a debugging information entry
 that is a child of the structure, union or class type entry;
 the friend entry has the 
 tag \livetarg{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}.
 
-A friend entry has a \livelink{chap:DWATfriend}{DW\-\_AT\-\_friend} attribute, whose value is
+A friend entry has 
+\addtoindexx{friend attribute}
+a \livelink{chap:DWATfriend}{DW\-\_AT\-\_friend} attribute, whose value is
 a reference to the debugging information entry describing
 the declaration of the friend.
 
 a reference to the debugging information entry describing
 the declaration of the friend.
 
@@ -1518,7 +1524,10 @@ giving the condition name as it appears in the source program.
 The condition entry's parent entry describes the conditional
 variable; normally this will be a \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable},
 \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} or 
 The condition entry's parent entry describes the conditional
 variable; normally this will be a \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable},
 \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} or 
-\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} entry. If the parent
+\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} entry.
+If 
+\addtoindexx{formal parameter entry}
+the parent
 entry has an array type, the condition can test any individual
 element, but not the array as a whole. The condition entry
 implicitly specifies a “comparison type” that is the
 entry has an array type, the condition can test any individual
 element, but not the array as a whole. The condition entry
 implicitly specifies a “comparison type” that is the
@@ -1710,7 +1719,8 @@ tag \livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_param
 
 A ``string'' is a sequence of characters that have specific
 semantics and operations that separate them from arrays of
 
 A ``string'' is a sequence of characters that have specific
 semantics and operations that separate them from arrays of
-characters. Fortran is one of the languages that has a string
+characters. 
+\addtoindex{Fortran} is one of the languages that has a string
 type. Note that ``string'' in this context refers to a target
 machine concept, not the class string as used in this document
 (except for the name attribute).
 type. Note that ``string'' in this context refers to a target
 machine concept, not the class string as used in this document
 (except for the name attribute).
@@ -1977,7 +1987,9 @@ given in the type of mbr\_ptr.}
 files.}
 
 A file type is represented by a debugging information entry
 files.}
 
 A file type is represented by a debugging information entry
-with the 
+with 
+\addtoindexx{file type entry}
+the 
 \livetarg{chap:DWTAGfiletype}{DW\-\_TAG\-\_file\-\_type}. 
 If the file type has a name,
 the file type entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value
 \livetarg{chap:DWTAGfiletype}{DW\-\_TAG\-\_file\-\_type}. 
 If the file type has a name,
 the file type entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value
@@ -2009,7 +2021,10 @@ about the data that represents the value for that object.}
 \hypertarget{chap:DWATdatalocationindirectiontoactualdata}
 The \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} 
 attribute may be used with any
 \hypertarget{chap:DWATdatalocationindirectiontoactualdata}
 The \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} 
 attribute may be used with any
-type that provides one or more levels of hidden indirection
+\addtoindexx{data location attribute}
+type that provides one or more levels of 
+\addtoindexx{hidden indirection|see{data location attribute}}
+hidden indirection
 and/or run\dash time parameters in its representation. Its value
 is a location description. The result of evaluating this
 description yields the location of the data for an object.
 and/or run\dash time parameters in its representation. Its value
 is a location description. The result of evaluating this
 description yields the location of the data for an object.
@@ -2022,13 +2037,14 @@ which loads the address of the
 object which can then serve as a descriptor in subsequent
 calculation. For an example using 
 \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} 
 object which can then serve as a descriptor in subsequent
 calculation. For an example using 
 \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} 
-for a Fortran 90 array, see 
+for a \addtoindex{Fortran 90 array}, see 
 Appendix \refersec{app:fortran90example}.}
 
 \subsection{Allocation and Association Status}
 \label{chap:allocationandassociationstatus}
 
 Appendix \refersec{app:fortran90example}.}
 
 \subsection{Allocation and Association Status}
 \label{chap:allocationandassociationstatus}
 
-\textit{Some languages, such as Fortran 90, provide types whose values
+\textit{Some languages, such as \addtoindex{Fortran 90},
+provide types whose values
 may be dynamically allocated or associated with a variable
 under explicit program control.}
 
 may be dynamically allocated or associated with a variable
 under explicit program control.}
 
@@ -2057,8 +2073,9 @@ indicates that objects of the type can be associated. The
 integer value of the attribute (see below) indicates whether
 an object of the type is currently associated or not.
 
 integer value of the attribute (see below) indicates whether
 an object of the type is currently associated or not.
 
-While these attributes are defined specifically with Fortran
-90 ALLOCATABLE and POINTER types in mind, usage is not limited
+While these attributes are defined specifically with 
+\addtoindex{Fortran 90} ALLOCATABLE and POINTER types
+in mind, usage is not limited
 to just that language.
 
 The value of these attributes is determined as described in
 to just that language.
 
 The value of these attributes is determined as described in
@@ -2067,7 +2084,7 @@ Section \refersec{chap:staticanddynamicvaluesofattributes}.
 A non\dash zero value is interpreted as allocated or associated,
 and zero is interpreted as not allocated or not associated.
 
 A non\dash zero value is interpreted as allocated or associated,
 and zero is interpreted as not allocated or not associated.
 
-\textit{For \addtoindex{Fortran} 90
+\textit{For \addtoindex{Fortran 90}
 if the \livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} 
 attribute is present,
 the type has the POINTER property where either the parent
 if the \livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} 
 attribute is present,
 the type has the POINTER property where either the parent
@@ -2084,7 +2101,7 @@ pointer assignment.}
 
 \textit{For examples using 
 \livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} for \addtoindex{Ada} and 
 
 \textit{For examples using 
 \livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} for \addtoindex{Ada} and 
-\addtoindex{Fortran} 90
+\addtoindex{Fortran 90}
 arrays, 
 see Appendix \refersec{app:aggregateexamples}.}
 
 arrays, 
 see Appendix \refersec{app:aggregateexamples}.}