From: Rod B. <ro...@bo...> - 2006-03-25 23:06:20
|
Philipp Klaus Krause wrote: >Jatin Bhateja wrote: > > >>HI All, >> >>I just ran a simple test case and it passed very easily. >> >>static static static static static static static static static static >>static static static static static static static int a, /* { dg-error >>"error: duplicate 'static'" } */ >> b; >> >>extern extern int c, /* { dg-error "error: duplicate 'extern'" } */ >> d; >> >>typedef typedef int e, /* { dg-error "error: duplicate 'typedef'" } */ >> f; >> >> >>Regards >>Jatin Bhateja >> >> > >There's even worse things than that: >It doesn't really do type cheking in many places, so you can pass >function arguments of completly wrong type. > >Some examples of things that will compile without a warning: >const: > >void b(int *i) >{ >} > >void a(const int *i) >{ >int *j; >j = i;// Should give a warning or error here. >b(i);// Should give a warning or error here. >} > >pointer tyes: >struct test{ >char b; >float c; >}; > >char ptest(char *p) >{ >return(*p); >} > >char ptest2(float *a) >{ >return(ptest(a));// Use float* as char** >} > >char ptest3(struct test *a) >{ >return(ptest3(&a));// Use struct test * as >struct test ** >} > >The quality depends a lot on the port. If you want to write code for the >Z80 port, be prepared for seemingly random, but reproducabel compiler >crashes and generation of code that doesn't work. These are not rare >problems. You'll probably encounter them in every single one of your >projects. I don't know how bad it is with the other ports. > >Philipp > > > > On a better note if you are compiling for the MCS51 family of processors then this is in my non-exhaustive opinion the second best compiler you can get this this chip. The top MCS51 compiler is the Keil compiler and the second best is SDCC, Keil is $5kUSD or so and SDCC is free what a difference. I would also like to point out that on the processors we are working with there are equally legitimate way to shoot your self in the foot with even generic C-code. Just because the compiler will b let you jump off a cliff does not mean that you should jump off that cliff. This is just my $0.02 worth. Regards, Rod Boyce. |