Date: Mon, 20 Jun 2011 01:17:45 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Ben Laurie <ben@links.org> Cc: Kostik Belousov <kostikbel@gmail.com>, Ben Laurie <benl@FreeBSD.org>, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r223262 - in head: cddl/contrib/opensolaris/lib/libdtrace/common contrib/binutils/bfd contrib/binutils/gas contrib/binutils/gas/config contrib/binutils/ld contrib/binutils/opcodes contr... Message-ID: <20110620010724.I1817@besplex.bde.org> In-Reply-To: <4DFDE87E.2050309@links.org> References: <201106181356.p5IDuXhW044171@svn.freebsd.org> <20110618174531.GW48734@deviant.kiev.zoral.com.ua> <4DFDE87E.2050309@links.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 19 Jun 2011, Ben Laurie wrote: > On 18/06/2011 18:45, Kostik Belousov wrote: >>> Modified: head/sys/sys/param.h >>> ============================================================================== >>> --- head/sys/sys/param.h Sat Jun 18 13:54:36 2011 (r223261) >>> +++ head/sys/sys/param.h Sat Jun 18 13:56:33 2011 (r223262) >>> @@ -319,4 +319,10 @@ __END_DECLS >>> #define member2struct(s, m, x) \ >>> ((struct s *)(void *)((char *)(x) - offsetof(struct s, m))) >>> >>> +/* >>> + * Access a variable length array that has been declared as a fixed >>> + * length array. >>> + */ >>> +#define __PAST_END(array, offset) (((typeof(*(array)) *)(array))[offset]) >>> + >>> #endif /* _SYS_PARAM_H_ */ >> >> The "typeof" there should be "__typeof", most likely. > > Hmm. Clang's own headers use __typeof__, it seems. gcc's docs also use > __typeof__. gcc supports but __foo__ and __foo for most things. The excessive underscores in __foo are style bugs and are not used in FreeBSD if possible. (They are useless, unlike leading underscores which are used to put identifiers in reserved namespaces.) Unfortunately, gcc doesn't actually document the alternative __foo form, at least in gcc*.info, and it doesn't support the __foo form for a few identifiers (notably for attributes). typeof in the above is an error because it is in the application namespace. The above also has some style bugs. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110620010724.I1817>