aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2002-01-23 07:51:16 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-01-23 07:51:16 +0000
commit5372b3fbe8b06fac16dc7023cdf0238c5dcb3478 (patch)
treed6141c2a328bd5520c033e87b336731cf7aca2dd
parent9b6e0e57a1acad4ecef432950815c3b4a793f700 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/doc/extend.texi19
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