* doc/extend.texi (Empty Structures): New.

From-SVN: r65497
This commit is contained in:
Geoffrey Keating 2003-04-12 01:43:11 +00:00 committed by Geoffrey Keating
parent 15c812e3f7
commit ba05abd3e0
2 changed files with 20 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2003-04-11 Geoffrey Keating <geoffk@apple.com>
* doc/extend.texi (Empty Structures): New.
2003-04-11 Eric Christopher <echristo@redhat.com>
* emit-rtl.c (gen_rtx): Fix typos.

View File

@ -436,6 +436,7 @@ extensions, accepted by GCC in C89 mode and in C++.
* Hex Floats:: Hexadecimal floating-point constants.
* Zero Length:: Zero-length arrays.
* Variable Length:: Arrays whose length is computed at run time.
* Empty Structures:: Structures with no members.
* Variadic Macros:: Macros with a variable number of arguments.
* Escaped Newlines:: Slightly looser rules for escaped newlines.
* Multi-line Strings:: String literals with embedded newlines.
@ -1358,6 +1359,21 @@ struct bar c = @{ @{ 1, @{ @} @} @}; // @r{Valid.}
struct foo d[1] = @{ @{ 1 @{ 2, 3, 4 @} @} @}; // @r{Invalid.}
@end example
@node Empty Structures
@section Structures With No Members
@cindex empty structures
@cindex zero-size structures
GCC permits a C structure to have no members:
@example
struct empty @{
@};
@end example
The structure will have size zero. In C++, empty structures are part
of the language, and the language standard says they have size 1.
@node Variable Length
@section Arrays of Variable Length
@cindex variable-length arrays