Subject: Re: Question regarding the array of size 0.
To: Greywolf <greywolf@starwolf.com>
From: Andrew Brown <atatat@atatdot.net>
List: tech-kern
Date: 03/20/2001 14:35:08
On Tue, Mar 20, 2001 at 11:31:40AM -0800, Greywolf wrote:
>On Tue, 20 Mar 2001, Shankar Agarwal wrote:
>
># Date: Tue, 20 Mar 2001 10:54:35 -0800
># From: Shankar Agarwal <shankar_agarwal@net.com>
># To: tech-kern@netbsd.org
># Cc: bsd hackers <freebsd-hackers@FreeBSD.ORG>
># Subject: Question regarding the array of size 0.
>#
># Hi All,
># #define syscallarg(x)                           \
>#     union {                             \
>#         register_t pad;                     \
>#         struct { x datum; } le;                 \
>#         struct {                        \
>#             int8_t pad[ (sizeof (register_t) < sizeof (x))  \
>#                 ? 0                 \
>#                 : sizeof (register_t) - sizeof (x)];    \
>#             x datum;                    \
>#         } be;                           \
>#     }
>#
># struct sys_exit_args {
>#     syscallarg(int) rval;
># };
>
>I thought ?: were evaluated at run-time, not compile-time?

any halfway decent optimizing compiler ought to be reducing the number
of useless constants in its output, this being an example of such.

-- 
|-----< "CODE WARRIOR" >-----|
codewarrior@daemon.org             * "ah!  i see you have the internet
twofsonet@graffiti.com (Andrew Brown)                that goes *ping*!"
andrew@crossbar.com       * "information is power -- share the wealth."