This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc preprocessor bug ?


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]