Skip site navigation (1)Skip section navigation (2)
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>