C99 usage in gcc
Zack Weinberg
zack@codesourcery.com
Mon Feb 2 23:40:00 GMT 2004
Joe Buck <Joe.Buck@synopsys.COM> writes:
> On Sat, Jan 31, 2004 at 10:16:59AM -0800, Zack Weinberg wrote:
>> Bruce Stephens <bruce@cenderis.demon.co.uk> writes:
>>
>> >> It is a pedwarn, hence you need -pedantic also.
>> >
>> > Which is useful, except that it also complains about:
>> >
>> > #ifdef __cplusplus
>> > // foo
>> > #endif
>>
>> As it should. This will be misinterpreted by a plain-C89 compiler;
>> comment stripping happens before #ifdef processing.
>
> I disagree. There should be no warning, because the plain-C89 compiler
> will *not* misinterpret this file. True, the // will not be interpreted
> as a comment; since there is no token "//" in C89 it will be interpreted
> as two / tokens. Nevertheless, the token stream with the two / tokens is
> ifdef'ed out, so it's a don't care.
That is true, however, there are other constructs that *will* be
misinterpreted: for example,
#ifdef __cplusplus
// can't happen
#endif
It is too hard to tell the difference at the point where the warning
issues.
zw
More information about the Gcc
mailing list