union, the name attribute is omitted or consists of a single
zero byte.
-\item A \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute, which is a flag, if the name
+\item A \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute,
+which 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
or classes are represented by variable entries 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, which is a flag that
+\item A \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute,
+which is a \livelink{chap:flag}{flag} that
indicates whether this entry represents a non-defining
declaration of an object.
entries do not need to contain attributes for the name or
type of the data member whose definition they represent.
-\item A \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter} attribute, which is a flag,
+\item A \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_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..
The absence of this attribute implies that the parameter’s
value in the calling function cannot be modified by the callee.
-\item A \livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional} attribute, which is a flag, if a
+\item A \livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional} attribute,
+which is a \livelink{chap:flag}{flag}, if a
parameter entry represents an optional parameter.
\item A \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} attribute for a formal parameter
for different architectures.
-\item A \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} attribute, which is a flag, if a
+\item A \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} attribute,
+which is a \livelink{chap:flag}{flag}, if a
variable entry represents a C++ object declared with the
constexpr specifier. This attributes indicates that the
variable can be evaluated as a compile\dash time constant.
\item flag \\
A flag 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
+implicitly (\livetarg{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present}).
+In the
first case, if the flag has value zero, it indicates the
absence of the attribute; if the flag has a non\dash zero value,
it indicates the presence of the attribute. In the second
\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}&0x1d&reference \\
\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}&0x1e&reference \\
\livelink{chap:DWATinline}{DW\-\_AT\-\_inline}&0x20&constant \\
-\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}&0x21&flag \\
+\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}&0x21&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}&0x22&constant, \livelink{chap:exprloc}{exprloc}, reference \\
\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer}&0x25&string \\
-\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}&0x27&flag \\
+\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}&0x27&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}&0x2a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} \\
% FIXME: lower case , not Constant
\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}&0x2c&Constant, \livelink{chap:rangelistptr}{rangelistptr} \\
\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}&0x31&reference \\
\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}&0x32&constant \\
\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}&0x33&constant \\
-\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}&0x34&flag \\
+\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}&0x34&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types}&0x35&reference \\
\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}&0x36&constant \\
\livelink{chap:DWATcount}{DW\-\_AT\-\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference \\
\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}&0x39&constant \\
\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}&0x3a&constant \\
\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}&0x3b&constant \\
-\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}&0x3c&flag \\
+\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}&0x3c&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}&0x3d&block \\
\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}&0x3e&constant \\
-\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&0x3f&flag \\
+\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&0x3f&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}&0x40&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} \\
\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend}&0x41&reference \\
\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}&0x42&constant \\
\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}&0x48&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} \\
\livelink{chap:DWATtype}{DW\-\_AT\-\_type}&0x49&reference \\
\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}&0x4a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} \\
-\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}&0x4b&flag \\
+\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}&0x4b&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}&0x4c&constant \\
\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}&0x4d&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} \\
\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}&0x50&\livelink{chap:exprloc}{exprloc} \\
\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc}, reference \\
\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc}&0x52&address \\
-\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}&0x53&flag \\
+\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}&0x53&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATextension}{DW\-\_AT\-\_extension}&0x54&reference \\
\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr} \\
-\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}&0x56&address, flag, reference, string \\
+\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}&0x56&address, \livelink{chap:flag}{flag}, reference, string \\
\livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column}&0x57&constant \\
\livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file}&0x58&constant \\
\livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line}&0x59&constant \\
\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}&0x5e&constant \\
\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}&0x5f&constant \\
\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}&0x60&string \\
-\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}&0x61&flag \\
+\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}&0x61&\livelink{chap:flag}{flag} \\
-\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}&0x62&flag \\
-\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}&0x63&flag \\
+\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}&0x62&\livelink{chap:flag}{flag} \\
+\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}&0x63&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}&0x64&reference \\
\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity}&0x65&constant \\
-\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental}&0x66&flag \\
-\livelink{chap:DWATpure}{DW\-\_AT\-\_pure}&0x67&flag \\
-\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive}&0x68&flag \\
+\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental}&0x66&\livelink{chap:flag}{flag} \\
+\livelink{chap:DWATpure}{DW\-\_AT\-\_pure}&0x67&\livelink{chap:flag}{flag} \\
+\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive}&0x68&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \ddag &0x69&reference \\
-\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \ddag &0x6a&flag \\
+\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \ddag &0x6a&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \ddag &0x6b&constant \\
-\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \ddag &0x6c&flag \\
-\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \ddag &0x6d&flag \\
+\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \ddag &0x6c&\livelink{chap:flag}{flag} \\
+\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \ddag &0x6d&\livelink{chap:flag}{flag} \\
\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \ddag &0x6e&string \\
\livetarg{chap:DWATlouser}{DW\-\_AT\-\_lo\-\_user}&0x2000 & --- \\
\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&0x3fff& --- \\
\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}&0x09&block \\
\livelink{chap:DWFORMblock1}{DW\-\_FORM\-\_block1}&0x0a&block \\
\livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}&0x0b&constant \\
-\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}&0x0c&flag \\
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}&0x0c&\livelink{chap:flag}{flag} \\
\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}&0x0d&constant \\
\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}&0x0e&string \\
\livelink{chap:DWFORMudata}{DW\-\_FORM\-\_udata}&0x0f&constant \\
\livelink{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect}&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} \ddag &0x17&\livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr}, \livelink{chap:rangelistptr}{rangelistptr} \\
\livelink{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc} \ddag &0x18&\livelink{chap:exprloc}{exprloc} \\
-\livelink{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present} \ddag &0x19&flag \\
+\livelink{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present} \ddag &0x19&\livelink{chap:flag}{flag} \\
\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8} \ddag &0x20&reference \\
\end{longtable}
Any debugging information entry representing the
declaration of an object or type artificially generated by
a compiler and not explicitly declared by the source program
-may have a \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} attribute, which is a flag.
+may have a \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} attribute, which is a \livelink{chap:flag}{flag}.
\section{Segmented Addresses}
\label{chap:segmentedaddresses}
contain such definitions. This allows a consumer, for example,
to interpret a type conversion to a base type correctly.
-\item A \livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8} attribute, which is a flag whose
+\item A \livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8} attribute,
+which is a \livelink{chap:flag}{flag} whose
presence indicates that all strings (such as the names of
declared entities in the source program) are represented
using the UTF\dash 8 representation
(see Section \refersec{datarep:attributeencodings}).
-\item A \livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} attribute, which is a flag
+\item A \livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} attribute, which is a \livelink{chap:flag}{flag}
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
If the name of the subroutine described by an entry with the
tag \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram} is visible outside of its containing
compilation unit, that entry has a \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute,
-which is a flag.
+which is a \livelink{chap:flag}{flag}.
\textit{Additional attributes for functions that are members of a
class or structure are described in
}
A subroutine entry may contain a \livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram}
-attribute which is a flag whose presence indicates that the
+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 flag,
+the program. If more than one subprogram contains this
+\livelink{chap:flag}{flag},
any one of them may be the starting subroutine of the program.
\textit{Fortran has a PROGRAM statement which is used to specify
A subroutine entry declared with a function prototype style
declaration may have a
\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped} attribute, which is
-a flag.
+a \livelink{chap:flag}{flag}.
\textit{The Fortran language allows the keywords elemental, pure
and recursive to be included as part of the declaration of
}
A subprogram entry may have a \livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental} attribute, which
-is a flag. The attribute indicates whether the subroutine
+is a \livelink{chap:flag}{flag}.
+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 flag. The attribute indicates whether the subroutine was
+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
-is a flag. The attribute indicates whether the subroutine
+is a \livelink{chap:flag}{flag}.
+The attribute indicates whether the subroutine
or entry point was declared with the ``recursive'' keyword
or property.
was inlined, rather they describe the coordinates of the call.
An inlined subroutine entry may have a \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}
-attribute, which is a flag whose presence indicates that the
+attribute, which is a \livelink{chap:flag}{flag}
+whose presence indicates that the
subroutine has been evaluated as a compile\dash time constant. Such
an entry may also have a \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} attribute,
whose value may be of any form that is appropriate for the
\item If the value is of class string, then the value is the
(possibly mangled) name of the target subprogram.
-\item If the value is of class flag, then the value true
+\item If the value is of class \livelink{chap:flag}{flag}, then the value true
indicates that the containing subroutine is a trampoline but
that the target subroutine is not known.
\end{itemize}
is assumed for an entry of a structure, union, or interface.
A data member entry may have a \livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable} attribute,
-which is a flag. This attribute indicates whether the data
+which is a \livelink{chap:flag}{flag}.
+This attribute indicates whether the data
member was declared with the mutable storage class specifier.
The beginning of a data member is described relative to
\end{enumerate}
then the enumeration type entry may have a \livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class}
-attribute, which is a flag. In a language that offers only
+attribute, which is a \livelink{chap:flag}{flag}.
+In a language that offers only
one kind of enumeration declaration, this attribute is not
required.
A subroutine entry declared with a function prototype style
declaration may have a \livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped} attribute, which is
-a flag.
+a \livelink{chap:flag}{flag}.
Each debugging information entry owned by a subroutine
type entry has a tag whose value has one of two possible
storage needed to hold a value of the subrange type.
The subrange entry may have a \livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled} attribute,
-which is a flag. If present, this attribute indicates whether
+which is a \livelink{chap:flag}{flag}.
+If present, this attribute indicates whether
this subrange represents a UPC array bound which is scaled
by the runtime THREADS value (the number of UPC threads in
this execution of the program).