diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2002-01-23 07:51:16 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2002-01-23 07:51:16 +0000 |
commit | 5372b3fbe8b06fac16dc7023cdf0238c5dcb3478 (patch) | |
tree | d6141c2a328bd5520c033e87b336731cf7aca2dd | |
parent | 9b6e0e57a1acad4ecef432950815c3b4a793f700 (diff) | |
download | gcc-5372b3fbe8b06fac16dc7023cdf0238c5dcb3478.zip gcc-5372b3fbe8b06fac16dc7023cdf0238c5dcb3478.tar.gz gcc-5372b3fbe8b06fac16dc7023cdf0238c5dcb3478.tar.bz2 |
re PR c/3504 (__alignof__ not working correctly)
PR c/3504
* doc/extend.texi: Correct documentation of __alignof__.
From-SVN: r49126
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/doc/extend.texi | 19 |
2 files changed, 12 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8f69d7d..7960529 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-01-23 Neil Booth <neil@daikokuya.demon.co.uk> + + PR c/3504 + * doc/extend.texi: Correct documentation of __alignof__. + 2002-01-22 Zack Weinberg <zack@codesourcery.com> * params.h: Rename arguments of DEFPARAM so that it will be diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 94d297e..4840833 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -2754,27 +2754,22 @@ Some machines never actually require alignment; they allow reference to any data type even at an odd addresses. For these machines, @code{__alignof__} reports the @emph{recommended} alignment of a type. -When the operand of @code{__alignof__} is an lvalue rather than a type, the -value is the largest alignment that the lvalue is known to have. It may -have this alignment as a result of its data type, or because it is part of -a structure and inherits alignment from that structure. For example, after -this declaration: +If the operand of @code{__alignof__} is an lvalue rather than a type, +its value is the required alignment for its type, taking into account +any minimum alignment specified with GCC's @code{__attribute__} +extension (@pxref{Variable Attributes}). For example, after this +declaration: @example struct foo @{ int x; char y; @} foo1; @end example @noindent -the value of @code{__alignof__ (foo1.y)} is probably 2 or 4, the same as -@code{__alignof__ (int)}, even though the data type of @code{foo1.y} -does not itself demand any alignment. +the value of @code{__alignof__ (foo1.y)} is 1, even though its actual +alignment is probably 2 or 4, the same as @code{__alignof__ (int)}. It is an error to ask for the alignment of an incomplete type. -A related feature which lets you specify the alignment of an object is -@code{__attribute__ ((aligned (@var{alignment})))}; see the following -section. - @node Variable Attributes @section Specifying Attributes of Variables @cindex attribute of variables |