odd behavior

Jędrzej Dudkiewicz jedrzej.dudkiewicz@gmail.com
Fri Aug 29 10:36:00 GMT 2014


Ah-ha! You're right. Now I see that this warning is issued by
preprocessor, not by compiler. Now that I think about it, it seems
logical. Preprocessor has to tokenize input to perform substitutions
and such, so even if code isn't meant for compiler, it must follow
some rules - ifdefined parts of code are not comments. Is that right?

On Fri, Aug 29, 2014 at 11:11 AM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On 29 August 2014 06:37, Jędrzej Dudkiewicz wrote:
>> I've seen it few times, but was always my fault and section was in
>> fact compiled. Try preprocessing your input file using -E option and
>> check if it really isn't used.
>
> No, it definitely happens in code that isn't compiled, try it:
>
> #if 0
> const char* s = ";
> #endif
> int main() { }
>
> x.c:2:17: warning: missing terminating " character [enabled by default]
>  const char* s = ";
>                  ^



-- 
Jędrzej Dudkiewicz

I really hate this damn machine, I wish that they would sell it.
It never does just what I want, but only what I tell it.



More information about the Gcc-help mailing list