This is the first pass of incorporating review commments from the
[dwarf-doc.git] / dwarf5 / latexdoc / dataobject.tex
index b065ee2..7064353 100644 (file)
@@ -25,13 +25,14 @@ have true named constants.}
 
 The debugging information entry for a program variable,
 formal parameter or constant may have the following attributes:
-\begin{enumerate}[1.]
+\begin{enumerate}[1. ]
 \item A \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute,
 \addtoindexx{name attribute}
 whose value is a null-terminated
 string, containing the data object name as it appears in the
-source program.  If a variable entry describes 
-an 
+source program.
+
+If a variable entry describes an 
 \addtoindex{anonymous union},
 the name attribute is omitted or consists of a single
 zero byte.
@@ -42,10 +43,13 @@ which
 \addtoindexx{external attribute}
 is a \livelink{chap:flag}{flag}, if the name
 of a variable is visible outside of its enclosing compilation
-unit.  The definitions of C++ static data members of structures
+unit.  
+
+\textit{The definitions of C++ static data members of structures
 or classes are represented by variable entries \nolink{flagged} as
 external. Both file static and local variables in C and C++
 are represented by non-external variable entries.
+}
 
 \item A \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute, 
 \addtoindexx{declaration attribute}
@@ -55,15 +59,16 @@ declaration of an object.
 
 \item A \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute,
 \addtoindexx{location attribute}
-whose value describes the
-location of a variable or parameter at run-time.  In a variable
+whose value describes the location of a variable or parameter at run-time.
+
+If no location attribute is present in a variable 
 entry representing the definition of a variable (that is,
 \addtoindexx{declaration attribute}
 with no 
-\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute) 
-if no location attribute
-is present, or if the location attribute is present but has
-an empty location description (as described in Section 2.6),
+\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute),
+or if the location attribute is present but has
+an empty location description (as described in Section \refersec{chap:locationdescriptions}),
+\addtoindexx{unallocated variable}
 the variable is assumed to exist in the source code but not
 in the executable program (but see number 10, below).
 
@@ -71,7 +76,11 @@ In a variable entry representing a non-defining declaration of a variable, the l
 specified modifies the location specified by the defining declaration and only applies for the
 scope of the variable entry; if no location is specified, then the location specified in the
 defining declaration applies.
-The location of a variable may be further specified with a \livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} attribute, if
+
+The location of a variable may be further specified with 
+\addtoindexx{segment attribute!and data segment}
+a 
+\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} attribute, if
 appropriate.
 
 \item A \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute describing the type of the variable,
@@ -83,13 +92,17 @@ the entry has a \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} att
 reference to the debugging information entry representing the
 declaration of this data member. The referenced entry has the
 tag \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} and will be a child of some class, structure
-or union type entry.  If the variable entry represents a
+or union type entry.
+
+If the variable entry represents a
 non-defining declaration, \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} may be used
 to reference the defining declaration of the variable. If
 no \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute is present, the defining
 declaration may be found as a global definition either in the
 current compilation unit or in another compilation unit with
-the \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute.  Variable entries containing
+the \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute.  
+
+Variable entries containing
 the \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute do not need to duplicate
 information provided by the declaration entry referenced by
 the specification attribute. In particular, such variable
@@ -104,7 +117,7 @@ represent.
 attribute\addtoindexx{variable parameter attribute}, 
 which is a \livelink{chap:flag}{flag},
 if a formal parameter entry represents a parameter whose
-value in the calling function may be modified by the callee..
+value in the calling function may be modified by the callee.
 The absence of this attribute implies that the parameter’s
 value in the calling function cannot be modified by the callee.
 
@@ -143,21 +156,27 @@ represented by an object in the address space of the program,
 or an entry describing a named constant. (Note that such
 an entry does not have a location attribute.) The value of
 this attribute may be a string or any of the constant data
-or data \livelink{chap:block}{block} forms, 
+or data block forms, 
 as appropriate for the representation
-of the variables value. The value is the actual constant
+of the variable's value. The value is the actual constant
 value of the variable, represented as it would be on the
-target architecture.  One way in which a formal parameter
+target architecture.  
+
+\textit{One way in which a formal parameter
 with a constant value and no location can arise is for a
 formal parameter of an inlined subprogram that corresponds
 to a constant actual parameter of a call that is inlined.
+}
 
-\item A \livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} attribute if the scope of an
+\item A \livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} 
+attribute if the scope of 
+\addtoindexx{start scope attribute}
+an
 \hypertarget{chap:DWATstartscopeobjectdeclaration}
 object is smaller than (that is, is a subset of the addresses
 of) the scope most closely enclosing the object. There are
 two cases:
-\begin{enumerate}[a)]
+\begin{enumerate}[a) ]
 \item If the scope of the object entry includes all of the
 containing scope except for a contiguous sequence of bytes at
 the beginning of that containing scope, then the scope of the
@@ -222,27 +241,31 @@ the endianity of the object. The value of
 this attribute specifies an ABI\dash defined 
 byte ordering \addtoindexx{ordering attribute} for
 the value of the object. If omitted, the default endianity
-of data for the given type is assumed.  The set of values
+of data for the given type is assumed.  
+
+The set of values
 and their meaning for this attribute is given in 
-Figure \refersec{fig:endianityattributevalues}.
+Table \ref{tab:endianityattributevalues}.
 
-\begin{figure}[here]
+\begin{table}[here]
+\caption{Endianity attribute values}
+\label{tab:endianityattributevalues}
 \centering
-\begin{tabular}{lp{9cm}}
+\begin{tabular}{l|p{9cm}}
+\hline
 Name&Meaning\\ \hline
 \livetarg{chap:DWENDdefault}{DW\-\_END\-\_default} &  Default endian encoding
-  (equivalent to the absence of a 
+  (equivalent to the \mbox{absence} of a 
   \livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} attribute) \\
 \livetarg{chap:DWENDbig}{DW\-\_END\-\_big} & Big\dash endian encoding \\
 \livetarg{chap:DWENDlittle}{DW\-\_END\-\_little}& Little-endian encoding \\
+\hline
 \end{tabular}
-\caption{Endianity attribute values}
-\label{fig:endianityattributevalues}
-\end{figure}
+\end{table}
 
 
 These represent the default encoding formats as defined by
-the target architectures ABI or processor definition. The
+the target architecture's ABI or processor definition. The
 exact definition of these formats may differ in subtle ways
 for different architectures.
 
@@ -252,13 +275,13 @@ which
 \hypertarget{chap:DWATconstexprcompiletimeconstantobject}
 is a \livelink{chap:flag}{flag}, if a
 variable entry represents a C++ object declared with the
-\textit{constexpr} specifier. This attributes indicates that the
+\textit{constexpr} specifier. This attribute indicates that the
 variable can be evaluated as a compile\dash time constant.  
 
 \textit{In C++,
 a variable declared with constexpr is implicitly const. Such a
 variable has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute whose value is a reference
-to a debugging information entry}
+to a debugging information entry describing a const qualified type.}
 
 \item A \livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} attribute for a 
 variable or constant entry as described in 
@@ -274,8 +297,8 @@ may
 be described by a debugging
 information entry with the 
 tag \livetarg{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}. 
-The
-common \nolink{block} 
+
+The common \nolink{block} 
 entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute 
 \addtoindexx{name attribute}
 whose value
@@ -288,7 +311,9 @@ It
 also has a \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute
 \addtoindexx{location attribute}
 whose value describes the
-location of the beginning of the common \nolink{block}. The common
+location of the beginning of the common \nolink{block}. 
+
+The common
 \nolink{block} entry owns debugging information entries describing
 the variables contained within the common \nolink{block}.