c-typeck.c (c_alignof): Error on incomplete types.
* c-typeck.c (c_alignof): Error on incomplete types. * extend.texi (Alignment): Document this. From-SVN: r32522
This commit is contained in:
parent
d9420976f2
commit
9d27bffe6d
3 changed files with 13 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2000-03-14 Stan Shebs <shebs@apple.com>
|
||||
|
||||
* c-typeck.c (c_alignof): Error on incomplete types.
|
||||
* extend.texi (Alignment): Document this.
|
||||
|
||||
2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* cppfiles.c: Include mkdeps.h.
|
||||
|
|
|
@ -781,6 +781,12 @@ c_alignof (type)
|
|||
if (code == VOID_TYPE || code == ERROR_MARK)
|
||||
return size_one_node;
|
||||
|
||||
if (TYPE_SIZE (type) == 0)
|
||||
{
|
||||
error ("__alignof__ applied to an incomplete type");
|
||||
return size_zero_node;
|
||||
}
|
||||
|
||||
return size_int (TYPE_ALIGN (type) / BITS_PER_UNIT);
|
||||
}
|
||||
|
||||
|
|
|
@ -1879,6 +1879,8 @@ 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.@refill
|
||||
|
||||
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.
|
||||
|
|
Loading…
Add table
Reference in a new issue