From ba05abd3e0f72539ee5bbb5ee2fa360cffd9eeb6 Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Sat, 12 Apr 2003 01:43:11 +0000 Subject: [PATCH] * doc/extend.texi (Empty Structures): New. From-SVN: r65497 --- gcc/ChangeLog | 4 ++++ gcc/doc/extend.texi | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b288c7766cf..a7968be400c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-04-11 Geoffrey Keating + + * doc/extend.texi (Empty Structures): New. + 2003-04-11 Eric Christopher * emit-rtl.c (gen_rtx): Fix typos. diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index a265672c967..ad2a02f92ba 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -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 -- 2.30.2