Hi Pavel, Nerijus and others,

Thank you for considering my previous mail. I'm glad to have made a contribution, however small.

What's the name and the version of your C compiler?


It's gcc, using command line parameter -v gives:

Apple Computer, Inc. GCC version 1151, based on gcc version 3.1 20020420 (prerelease)

This is the same string I get when doing cpp -v, so I can't really tell if this is the gcc precompiler or one that's Apple-specific.

That's what I get from gcc 3.2 if I remove the last argument together with
the comma:

vfs.c:448:93: macro "MC_OP" requires 5 arguments, but only 4 given
vfs.c:450: syntax error before "int"
vfs.c:689:88: macro "MC_OP" requires 5 arguments, but only 4 given
vfs.c:691: syntax error before "off_t"

The comma was present in line 458, but there was no parameter defined. I recreated the situation and got following the exact error(s):

vfs.c:460: illegal external declaration, missing `;' after `MC_OP'
vfs.c:700: only 4 args to macro 'MC_OP' (5 expected)
vfs.c:700: undefined type, found `MC_OP'

Also the following errors, but these look more like a consequence of the above:

vfs.c:702: illegal external declaration, missing `;' after `off_t'
vfs.c:702: illegal external declaration, missing `;' after `off_t'
vfs.c:702: illegal external declaration, missing `;' after `whence'
vfs.c:707: illegal external declaration, found `if'
vfs.c:707: illegal method selector, found `1'
vfs.c:708: illegal method definition, missing `{' after `1'
vfs.c:712: illegal external declaration, found `if'
vfs.c:712: illegal method selector, found `1'
vfs.c:713: illegal method definition, missing `{' after `78'
vfs.c:714: illegal external declaration, found `return'

That's the test case that should fail on Jaguar:

#define f(x,y) 1
#define g(x) f(x,)
g(1);

Let me just try that:

test.c:3: only 1 arg to macro 'f' (2 expected)

I think that's representative of the behaviour.

Kind regards,

Wim Rijnders.

Reply via email to