This finishes the 'flag' links, which
[dwarf-doc.git] / dwarf5 / latexdoc / programscope.tex
index 5f1a44b..de8f3e3 100644 (file)
@@ -218,7 +218,7 @@ using the UTF\dash 8 representation
 whose presence indicates that the compilation unit contains a
 subprogram that has been identified as the starting function
 of the program. If more than one compilation unit contains
-this flag, any one of them may contain the starting function.
+this \nolink{flag}, any one of them may contain the starting function.
 
 \textit{Fortran has a PROGRAM statement which is used
 to specify and provide a user\dash specified name for the main
@@ -593,7 +593,7 @@ attribute which is
 a \livelink{chap:flag}{flag} whose presence indicates that the
 subroutine has been identified as the starting function of
 the program.  If more than one subprogram contains this 
-\livelink{chap:flag}{flag},
+\nolink{flag},
 any one of them may be the starting subroutine of the program.
 
 \textit{Fortran has a PROGRAM statement which is used to specify
@@ -748,14 +748,14 @@ 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 block
+The entry for a subroutine that includes a Fortran common \nolink{block}
 has a child entry with the 
 tag \livetarg{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion}. 
 The
 common inclusion entry has a 
 \livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference} attribute
 whose value is a reference to the debugging information entry
-for the common block being included 
+for the common \nolink{block} being included 
 (see Section \refersec{chap:commonblockentries}).
 
 \subsection{Low-Level Information}
@@ -1301,34 +1301,44 @@ which can be assumed to be the target subroutine. }
 \section{Lexical Block Entries}
 \label{chap:lexicalblockentries}
 
-\textit{A lexical block is a bracketed sequence of source statements
+\textit{A lexical \livetargi{chap:lexicalblock}{block}{lexical block} is a bracketed sequence of source statements
 that may contain any number of declarations. In some languages
-(including C and C++), blocks can be nested within other
-blocks to any depth.}
+(including C and C++), \nolink{blocks} can be nested within other
+\nolink{blocks} to any depth.}
 
-A lexical block is represented by a debugging information
+% We do not need to link to the preceeding paragraph.
+A lexical \nolink{block} is represented by a debugging information
 entry with the 
 tag \livetarg{chap:DWTAGlexicalblock}{DW\-\_TAG\-\_lexical\-\_block}.
 
-The lexical block 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
+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 
+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 block 
+for the lexical \livelink(chap:lexicalblock}{block} 
 (see Section \refersec{chap:codeaddressesandranges}).
 
-If a name has been given to the lexical block in the source
-program, then the corresponding lexical block entry has a
-\livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute whose value is a null-terminated string
-containing the name of the lexical block as it appears in
+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} 
+as it appears in
 the source program.
 
 \textit{This is not the same as a C or C++ label (see below).}
 
-The lexical block entry owns debugging information entries that
-describe the declarations within that lexical block. There is
+The lexical \livelink(chap:lexicalblockentry}{block} entry owns 
+debugging information entries that
+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 block.
+of an identifier or inner lexical \livelink(chap:lexicalblock}{block}.
 
 \section{Label Entries}
 \label{chap:labelentries}
@@ -1382,33 +1392,43 @@ the with statement.
 \section{Try and Catch Block Entries}
 \label{chap:tryandcatchblockentries}
 
-\textit{In C++ a lexical block may be designated as a ``catch
-block.'' A catch block is an exception handler that handles
-exceptions thrown by an immediately preceding ``try block.''
-A catch block designates the type of the exception that it
+\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
+exceptions thrown by an immediately 
+preceding ``try \livelink{chap:tryblock}{block}.''
+A catch \livelink{chap:catchblock}{block} 
+designates the type of the exception that it
 can handle.}
 
-A try block is represented by a debugging information entry
+A try \livetargi{chap:tryblock}{block}{try block} is represented 
+by a debugging information entry
 with the tag \livetarg{chap:DWTAGtryblock}{DW\-\_TAG\-\_try\-\_block}.  
-A catch block is represented by
+A catch \livelink{chap:catchblock}{block} is represented by
 a debugging information entry with 
 the tag \livetarg{chap:DWTAGcatchblock}{DW\-\_TAG\-\_catch\-\_block}.
 
-Both try and catch 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
-or non- contiguous address ranges, respectively, of the
-machine instructions generated for the block (see Section
+or non\dash contiguous address ranges, respectively, of the
+machine instructions generated for the \livelink{chap:lexicalblock}{block}
+(see Section
 \refersec{chap:codeaddressesandranges}).
 
-Catch block entries have at least one child entry, an
+Catch \livelink{chap:catchblock}{block} entries have at 
+least one child entry, an
 entry representing the type of exception accepted by
-that catch block. This child entry has one of the tags
+that catch \livelink{chap:catchblock}{block}. 
+This child entry has one of the tags
 \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} or \livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters},
 and will have the same form as other parameter entries.
 
-The siblings immediately following a try block entry are its
-corresponding catch block entries.
+The siblings immediately following 
+a try \livelink{chap:tryblock}{block} entry are its
+corresponding catch \livelink{chap:catchblock}{block} entries.