diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2006-10-01 19:38:08 -0400 |
---|---|---|
committer | Sandra Loosemore <sandra@gcc.gnu.org> | 2006-10-01 19:38:08 -0400 |
commit | a40776a29588b73758d83ced0bf31488023de9ad (patch) | |
tree | 0dcdbe9bee62c2eda67530a05289abfffb121b64 | |
parent | 3397327cdcfe7b878320228cee615615260390a7 (diff) | |
download | gcc-a40776a29588b73758d83ced0bf31488023de9ad.zip gcc-a40776a29588b73758d83ced0bf31488023de9ad.tar.gz gcc-a40776a29588b73758d83ced0bf31488023de9ad.tar.bz2 |
tree.h (DECL_FIELD_OFFSET, [...]): Fix comments to reflect actual behavior and relationship between...
2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
* gcc/tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
comments to reflect actual behavior and relationship between
DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
* gcc/doc/c-tree.texi (Working with declarations): Fix documentation
of FIELD_DECL likewise.
From-SVN: r117352
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/doc/c-tree.texi | 20 | ||||
-rw-r--r-- | gcc/tree.h | 7 |
3 files changed, 28 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e957ecb..14e3af7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2006-10-01 Sandra Loosemore <sandra@codesourcery.com> + + * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix + comments to reflect actual behavior and relationship between + DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN. + + * doc/c-tree.texi (Working with declarations): Fix documentation + of FIELD_DECL likewise. + 2006-10-01 Ryan Mansfield <rmansfield@qnx.com> PR c/20533 diff --git a/gcc/doc/c-tree.texi b/gcc/doc/c-tree.texi index 06dcc82..bc4d9b6 100644 --- a/gcc/doc/c-tree.texi +++ b/gcc/doc/c-tree.texi @@ -967,12 +967,20 @@ ordinary type might be @code{short} while the @code{DECL_ARG_TYPE} is @item FIELD_DECL These nodes represent non-static data members. The @code{DECL_SIZE} and -@code{DECL_ALIGN} behave as for @code{VAR_DECL} nodes. The -@code{DECL_FIELD_BITPOS} gives the first bit used for this field, as an -@code{INTEGER_CST}. These values are indexed from zero, where zero -indicates the first bit in the object. - -If @code{DECL_C_BIT_FIELD} holds, this field is a bit-field. +@code{DECL_ALIGN} behave as for @code{VAR_DECL} nodes. +The position of the field within the parent record is specified by a +combination of three attributes. @code{DECL_FIELD_OFFSET} is the position, +counting in bytes, of the @code{DECL_OFFSET_ALIGN}-bit sized word containing +the bit of the field closest to the beginning of the structure. +@code{DECL_FIELD_BIT_OFFSET} is the bit offset of the first bit of the field +within this word; this may be nonzero even for fields that are not bit-fields, +since @code{DECL_OFFSET_ALIGN} may be greater than the natural alignment +of the field's type. + +If @code{DECL_C_BIT_FIELD} holds, this field is a bit-field. In a bit-field, +@code{DECL_BIT_FIELD_TYPE} also contains the type that was originally +specified for it, while DECL_TYPE may be a modified type with lesser precision, +according to the size of the bit field. @item NAMESPACE_DECL @xref{Namespaces}. @@ -2648,11 +2648,14 @@ struct tree_decl_with_rtl GTY(()) }; /* In a FIELD_DECL, this is the field position, counting in bytes, of the - byte containing the bit closest to the beginning of the structure. */ + DECL_OFFSET_ALIGN-bit-sized word containing the bit closest to the beginning + of the structure. */ #define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset) /* In a FIELD_DECL, this is the offset, in bits, of the first bit of the - field from DECL_FIELD_OFFSET. */ + field from DECL_FIELD_OFFSET. This field may be nonzero even for fields + that are not bit fields (since DECL_OFFSET_ALIGN may be larger than the + natural alignment of the field's type). */ #define DECL_FIELD_BIT_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.bit_offset) /* In a FIELD_DECL, this indicates whether the field was a bit-field and |