Adds DW_AT_d* links to attributes table.
[dwarf-doc.git] / dwarf5 / latexdoc / typeentries.tex
index 84b6de2..e67d841 100644 (file)
@@ -40,7 +40,10 @@ Section \refersec{chap:dataobjectentries}.
 If omitted, the encoding assumes the representation that
 is the default for the target architecture.
 
-A base type entry has either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute
+A base type entry has 
+\hypertarget{chap:DWATbytesizedataobjectordatatypesize}
+either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute
+\hypertarget{chap:DWATbitsizebasetypebitsize}
 or a \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attribute whose integer constant value
 (see Section \refersec{chap:byteandbitsizes}) 
 is the amount of storage needed to hold
@@ -54,7 +57,9 @@ value is 4.}
 
 If the value of an object of the given type does not fully
 occupy the storage described by a byte size attribute,
-the base type entry may also have a \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and a
+\hypertarget{chap:DWATdatabitoffsetbasetypebitlocation}
+the base type entry may also have a 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and a
 \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} attribute, both of whose values are
 integer constant values (
 see Section \refersec{chap:staticanddynamicvaluesofattributes}). 
@@ -74,13 +79,15 @@ of zero is assumed.
 is also used for bit field members 
 (see Section \refersec{chap:datamemberentries}). 
 It
+\hypertarget{chap:DWATbitoffsetbasetypebitlocation}
 replaces the attribute \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} when used for base
 types as defined in DWARF V3 and earlier. The earlier attribute
 is defined in a manner suitable for bit field members on
 big\dash endian architectures but which is wasteful for use on
 little\dash endian architectures.}
 
-\textit{The attribute \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} is deprecated in DWARF Version
+\textit{The attribute \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} is 
+deprecated in DWARF Version
 4 for use in base types, but implementations may continue to
 support its use for compatibility.}
 
@@ -158,11 +165,21 @@ represented by a base type entry with a name attribute whose
 value is “char16\_t”, an encoding attribute whose value
 is \livelink{chap:DWATEUTF}{DW\-\_ATE\-\_UTF} and a byte size attribute whose value is 2.}
 
-The \livelink{chap:DWATEpackeddecimal}{DW\-\_ATE\-\_packed\-\_decimal} and \livelink{chap:DWATEnumericstring}{DW\-\_ATE\-\_numeric\-\_string} base types
+The 
+\livelink{chap:DWATEpackeddecimal}{DW\-\_ATE\-\_packed\-\_decimal} 
+and 
+\livelink{chap:DWATEnumericstring}{DW\-\_ATE\-\_numeric\-\_string} 
+base types
 represent packed and unpacked decimal string numeric data
 types, respectively, either of which may be either signed
-or unsigned. These base types are used in combination with
-\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}, \livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count} and \livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}
+or unsigned. 
+\hypertarget{chap:DWATdecimalsigndecimalsignrepresentation}
+These 
+\hypertarget{chap:DWATdigitcountdigitcountforpackeddecimalornumericstringtype}
+base types are used in combination with
+\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}, 
+\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count} and 
+\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}
 attributes.
 
 A \livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign} attribute is an integer constant that
@@ -173,10 +190,13 @@ mean that the type has a leading overpunch, trailing overpunch,
 leading separate or trailing separate sign representation or,
 alternatively, no sign at all.
 
-The \livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count} attribute is an integer constant
+The 
+\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}
+attribute is an integer constant
 value that represents the number of digits in an instance of
 the type.
 
+\hypertarget{chap:DWATdecimalscaledecimalscalefactor}
 The \livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale} attribute is an integer constant value
 that represents the exponent of the base ten scale factor to
 be applied to an instance of the type. A scale of zero puts the
@@ -222,6 +242,7 @@ type entry has a \livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}
 interpretation as described for the \livelink{chap:DWATEpackeddecimal}{DW\-\_ATE\-\_packed\-\_decimal}
 and \livelink{chap:DWATEnumericstring}{DW\-\_ATE\-\_numeric\-\_string} base types.
 
+\hypertarget{chap:DWATbinaryscalebinaryscalefactorforfixedpointtype}
 For a data type with a binary scale factor, the fixed
 binary type entry has a \livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale} attribute. The
 \livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale} attribute is an integer constant value
@@ -453,7 +474,10 @@ the type of each element of the array.
 If the amount of storage allocated to hold each element of an
 object of the given array type is different from the amount
 of storage that is normally allocated to hold an individual
-object of the indicated element type, then the array type
+\hypertarget{chap:DWATbitstridearrayelementstrideofarraytype}
+object of the 
+\hypertarget{chap:DWATbytestridearrayelementstrideofarraytype}
+indicated element type, then the array type
 entry has either a \livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride} or a \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}
 attribute, whose value 
 (see Section \refersec{chap:staticanddynamicvaluesofattributes}) 
@@ -546,6 +570,7 @@ in the source program.
 
 A structure type, union type or class type entry may have
 either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} or a \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attribute 
+\hypertarget{chap:DWATbitsizedatamemberbitsize}
 (see Section \refersec{chap:byteandbitsizes}), 
 whose value is the amount of storage needed
 to hold an instance of the structure, union or class type,
@@ -659,7 +684,9 @@ class or interface from which the parent class or structure
 of the inheritance entry is derived, extended or implementing.
 
 An inheritance entry for a class that derives from or extends
-another class or struct also has a \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}
+\hypertarget{chap:DWATdatamemberlocationinheritedmemberlocation}
+another class or struct also has a 
+\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}
 attribute, whose value describes the location of the beginning
 of the inherited type relative to the beginning address of the
 derived class. If that value is a constant, it is the offset
@@ -772,7 +799,10 @@ conventions that are appropriate to the current language on
 the target system.
 
 The member entry corresponding to a data member that is
-defined in a structure, union or class may have either a
+\hypertarget{chap:DWATdatabitoffsetdatamemberbitlocation}
+defined 
+\hypertarget{chap:DWATdatamemberlocationdatamemberlocation}
+in a structure, union or class may have either a
 \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute or a \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}
 attribute. If the beginning of the data member is the same as
 the beginning of the containing entity then neither attribute
@@ -922,6 +952,7 @@ Appendix \refersec{app:pascalexample}.}
 is also used for base types 
 (see Section \refersec{chap:basetypeentries}). 
 It replaces the
+\livetarg{chap:DWATbitoffsetdatamemberbitlocation}
 attributes \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} and \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} when used to
 identify the beginning of bit field data members as defined
 in DWARF V3 and earlier. The earlier attributes are defined
@@ -1024,8 +1055,11 @@ 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 the member function entry describes an explicit member
-function, then that entry has a \livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit} attribute.
+If 
+\hypertarget{chap:DWATexplicitexplicitpropertyofmemberfunction}
+the member function entry describes an explicit member
+function, then that entry has a 
+\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit} attribute.
 
 An entry for a virtual function also has a
 \livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location} attribute whose value contains
@@ -1105,7 +1139,9 @@ tag \livetarg{chap:DWTAGtemplatevalueparameter}{DW\-\_TAG\-\_template\-\_value\-
 Each
 such entry may have a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is
 a null\dash terminated string containing the name of the formal
-value parameter as it appears in the source program. The
+value parameter as it appears in the source program. 
+The
+\hypertarget{chap:DWATconstvaluetemplatevalueparameter}
 template value parameter entry also has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute
 describing the type of the parameterized value. Finally,
 the template value parameter entry has a \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}
@@ -1145,29 +1181,37 @@ tag \livetarg{chap:DWTAGvariantpart}{DW\-\_TAG\-\_variant\-\_part} and is
 owned by the corresponding structure type entry.
 
 If the variant part has a discriminant, the discriminant is
+\hypertarget{chap:DWATdiscrdiscriminantofvariantpart}
 represented by a separate debugging information entry which
 is a child of the variant part entry. This entry has the form
 of a structure data member entry. The variant part entry will
-have a \livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr} attribute whose value is a reference to
+have a 
+\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr} attribute whose value is a reference to
 the member entry for the discriminant.
 
 If the variant part does not have a discriminant (tag field),
-the variant part entry has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute to represent
+the variant part entry has a 
+\livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute to represent
 the tag type.
 
 Each variant of a particular variant part is represented by
+\hypertarget{chap:DWATdiscrvaluediscriminantvalue}
 a debugging information entry with the 
 tag \livetarg{chap:DWTAGvariant}{DW\-\_TAG\-\_variant}
 and is a child of the variant part entry. The value that
 selects a given variant may be represented in one of three
-ways. The variant entry may have a \livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value} attribute
+ways. The variant entry may have a 
+\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value} attribute
 whose value represents a single case label. The value of this
 attribute is encoded as an LEB128 number. The number is signed
 if the tag type for the variant part containing this variant
 is a signed type. The number is unsigned if the tag type is
 an unsigned type.
 
-Alternatively, the variant entry may contain a \livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}
+Alternatively, 
+\hypertarget{chap:DWATdiscrlistlistofdiscriminantvalues}
+the variant entry may contain a 
+\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}
 attribute, whose value represents a list of discriminant
 values. This list is represented by any of the 
 \livelink{chap:block}{block} forms and
@@ -1284,6 +1328,7 @@ required.
 
 \textit{In C or C++, the underlying type will be the appropriate
 integral type determined by the compiler from the properties of
+\hypertarget{chap:DWATenumclasstypesafeenumerationdefinition}
 the enumeration literal values. A C++ type declaration written
 using enum class declares a strongly typed enumeration and
 is represented using \livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type} in combination
@@ -1297,17 +1342,22 @@ such entry is a child of the enumeration type entry, and the
 enumerator entries appear in the same order as the declarations
 of the enumeration literals in the source program.
 
-Each enumerator entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose
+Each enumerator entry has a 
+\livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose
 value is a null\dash terminated string containing the name of the
-enumeration literal as it appears in the source program. Each
-enumerator entry also has a \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} attribute,
+\hypertarget{chap:DWATconstvalueenumerationliteralvalue}
+enumeration literal as it appears in the source program. 
+Each enumerator entry also has a 
+\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} attribute,
 whose value is the actual numeric value of the enumerator as
 represented on the target system.
 
 
 If the enumeration type occurs as the description of a
 dimension of an array type, and the stride for that dimension
+\hypertarget{chap:DWATbytestrideenumerationstridedimensionofarraytype}
 is different than what would otherwise be determined, then
+\hypertarget{chap:DWATbitstrideenumerationstridedimensionofarraytype}
 the enumeration type entry has either a \livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}
 or \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} attribute which specifies the separation
 between successive elements along the dimension as described
@@ -1485,7 +1535,10 @@ int shared foo[34*THREADS][10][20];
 The subrange 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}
-attribute may be replaced by a \livelink{chap:DWATcount}{DW\-\_AT\-\_count} attribute, whose
+attribute 
+\hypertarget{chap:DWATcountelementsofsubrangetype}
+may be replaced by a 
+\livelink{chap:DWATcount}{DW\-\_AT\-\_count} attribute, whose
 value describes the number of elements in the subrange rather
 than the value of the last element. The value of each of
 these attributes is determined as described in 
@@ -1516,7 +1569,9 @@ integer with the same size as an address on the target machine.
 
 If the subrange type occurs as the description of a dimension
 of an array type, and the stride for that dimension is
+\hypertarget{chap:DWATbytestridesubrangestridedimensionofarraytype}
 different than what would otherwise be determined, then
+\hypertarget{chap:DWATbitstridesubrangestridedimensionofarraytype}
 the subrange type entry has either a \livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride} or
 \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} attribute which specifies the separation
 between successive elements along the dimension as described
@@ -1544,7 +1599,10 @@ The pointer to member entry has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} att
 describe the type of the class or structure member to which
 objects of this type may point.
 
-The pointer to member entry also has a \livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}
+The pointer to member entry also 
+\hypertarget{chap:DWATcontainingtypecontainingtypeofpointertomembertype}
+has a 
+\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}
 attribute, whose value is a reference to a debugging
 information entry for the class or structure to whose members
 objects of this type may point.
@@ -1617,7 +1675,9 @@ is the amount of storage need to hold a value of the file type.
 information, including a location and/or run\dash time parameters,
 about the data that represents the value for that object.}
 
-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
 and/or run\dash time parameters in its representation. Its value
 is a location description. The result of evaluating this