This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: fix documentation for FIELD_DECL macros
- From: Sandra Loosemore <sandra at codesourcery dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 29 Sep 2006 21:59:12 -0400
- Subject: PATCH: fix documentation for FIELD_DECL macros
I decided I couldn't commit this documentation patch as "obvious", since I've
spent most of the past week trying to figure out what the behavior really is.
:-P Any comments? Is this OK, or am I still hopelessly confused?
-Sandra
2006-09-29 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.
Index: gcc/doc/c-tree.texi
===================================================================
*** gcc/doc/c-tree.texi (revision 117310)
--- gcc/doc/c-tree.texi (working copy)
*************** ordinary type might be @code{short} whil
*** 967,978 ****
@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.
@item NAMESPACE_DECL
@xref{Namespaces}.
--- 967,986 ----
@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 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}.
Index: gcc/tree.h
===================================================================
*** gcc/tree.h (revision 117310)
--- gcc/tree.h (working copy)
*************** struct tree_decl_with_rtl GTY(())
*** 2648,2658 ****
};
/* 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. */
#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. */
#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
--- 2648,2661 ----
};
/* In a FIELD_DECL, this is the field position, counting in bytes, of the
! 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. 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