This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: odd behavior
- From: JÄdrzej Dudkiewicz <jedrzej dot dudkiewicz at gmail dot com>
- To: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Cc: Michael Williamson <michael dot h dot williamson at gmail dot com>, gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Fri, 29 Aug 2014 12:36:03 +0200
- Subject: Re: odd behavior
- Authentication-results: sourceware.org; auth=none
- References: <CAKZygbd3AV0D9p+Btp_M52WG0GqOFPBdX=j496JiDjU+XZgy5Q at mail dot gmail dot com> <CABJqhQNJ9ditprsb4cAdPfADOxwwhg2XCw3oeHvD1B=BNjDS7A at mail dot gmail dot com> <CAH6eHdRqMSc1rKD-DyaNVmZcHebCGnHDvKqRyKJ9Dh0T--KeWQ at mail dot gmail dot com>
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.