From f0727156003b474e6bd987b4d704f7929dad0fd2 Mon Sep 17 00:00:00 2001 From: pinskia Date: Sun, 11 Dec 2005 06:28:35 +0000 Subject: [PATCH 1/1] 2005-12-11 Andrew Pinski PR libobjc/25346 * objc/objc-api.h (_C_BOOL): New define. * encoding.c (objc_sizeof_type): Handle _C_BOOL. (objc_alignof_type): Likewise. (objc_skip_typespec): Likewise. 2005-12-11 Andrew Pinski PR libobjc/25346 * objc.dg/encode-7.m: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108378 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/objc.dg/encode-7.m | 18 ++++++++++++++++++ libobjc/ChangeLog | 8 ++++++++ libobjc/encoding.c | 9 +++++++++ libobjc/objc/objc-api.h | 1 + 5 files changed, 41 insertions(+) create mode 100644 gcc/testsuite/objc.dg/encode-7.m diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 28b6eda6d56..71286b1cb8a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-12-11 Andrew Pinski + + PR libobjc/25346 + * objc.dg/encode-7.m: New test. + 2005-12-10 Mark Mitchell PR c++/25010 diff --git a/gcc/testsuite/objc.dg/encode-7.m b/gcc/testsuite/objc.dg/encode-7.m new file mode 100644 index 00000000000..0b49a415c29 --- /dev/null +++ b/gcc/testsuite/objc.dg/encode-7.m @@ -0,0 +1,18 @@ +/* { dg-options "-fgnu-runtime" } */ +/* { dg-do run } */ + +#include +#include + +struct f +{ + _Bool a; +}; + + +int main(void) +{ + if (objc_sizeof_type (@encode (struct f)) != sizeof(struct f)) + abort (); + return 0; +} diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 809bcc0abe5..56f1ef8a856 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,11 @@ +2005-12-11 Andrew Pinski + + PR libobjc/25346 + * objc/objc-api.h (_C_BOOL): New define. + * encoding.c (objc_sizeof_type): Handle _C_BOOL. + (objc_alignof_type): Likewise. + (objc_skip_typespec): Likewise. + 2005-11-20 David Ayers PR libobjc/19024 diff --git a/libobjc/encoding.c b/libobjc/encoding.c index efdc2f0a161..7f6004fb9ca 100644 --- a/libobjc/encoding.c +++ b/libobjc/encoding.c @@ -123,6 +123,10 @@ objc_sizeof_type (const char *type) } switch (*type) { + case _C_BOOL: + return sizeof (_Bool); + break; + case _C_ID: return sizeof (id); break; @@ -273,6 +277,10 @@ objc_alignof_type (const char *type) /* do nothing */; } switch (*type) { + case _C_BOOL: + return __alignof__ (_Bool); + break; + case _C_ID: return __alignof__ (id); break; @@ -496,6 +504,7 @@ objc_skip_typespec (const char *type) case _C_INT: case _C_UINT: case _C_LNG: + case _C_BOOL: case _C_ULNG: case _C_LNG_LNG: case _C_ULNG_LNG: diff --git a/libobjc/objc/objc-api.h b/libobjc/objc/objc-api.h index 1f5b5191ff8..e393c395219 100644 --- a/libobjc/objc/objc-api.h +++ b/libobjc/objc/objc-api.h @@ -69,6 +69,7 @@ struct objc_method_description #define _C_FLT 'f' #define _C_DBL 'd' #define _C_BFLD 'b' +#define _C_BOOL 'B' #define _C_VOID 'v' #define _C_UNDEF '?' #define _C_PTR '^' -- 2.11.0