Subject: Question regarding the array of size 0.
To: None <>
From: Shankar Agarwal <>
List: tech-kern
Date: 03/20/2001 10:54:35
Hi All,
I am getting the following array while trying to compile uipc_syscalls.c
/vobs/atm/netbsd/sys/sys/syscallargs.h", line 30: zero or negative
This is because the code in syscallargs.h is defining an array of size
The code that is creating problem is
#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;

struct sys_read_args {
    syscallarg(int) fd;
    syscallarg(void *) buf;
    syscallarg(size_t) nbyte;

Can someone pls tell me if it is possible to define an array of size 0.
If yes then do we need some compiler option for this to work. I am not
using the Makefile of FreeBsd and trying to write my own make file which
will work for this code.