This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: gcc preprocessor bug ?
- From: Neil Booth <neil at daikokuya dot co dot uk>
- To: Nilmoni Deb <ndeb at ece dot cmu dot edu>
- Cc: bug-gcc at gnu dot org
- Date: Thu, 10 Apr 2003 06:30:47 +0100
- Subject: Re: gcc preprocessor bug ?
- References: <Pine.LNX.4.21.0008260112420.3762-100000@sphere.man.uk.ekto.org> <Pine.LNX.3.96L.1030409163156.31487S-100000@frodo.ece.cmu.edu>
Nilmoni Deb wrote:-
>
> Hi,
> I compiled the following program with both gcc-2.95.3 and
> gcc-3.2.1 and in both cases it compiled ok and ran ok (printed "i=10").
>
> #include<stdio.h>
>
> #define MAX 10;
>
> main()
> {
> int i=MAX;
> printf("i=%d\n", i);
>
> /* int *j=0;
> j = (int*)malloc(MAX*sizeof(int)); */
> }
>
> Now, if I uncomment the last two lines, then the compiler gives the error:
> file.c:11: parse error before ';' token
>
> Now, if I remove the ";" from the #define statement, it compiles ok.
>
> Shouldn't the preprocessor always give an error for a #define statement
> ending in ";" ? It seems it does not do so consistently.
I think you're confused by what the preprocessor does and what the
compiler does.
Neil.