On Wed, 2006-09-06 at 13:41 +1000, Benno wrote:
> On Wed Sep 06, 2006 at 11:03:48 +0800, raymond wrote:
> >I write a simple C program with a Macro like below:
> >
> >/*test.c*/
> >  1 #include<unistd.h>
> >  2 #include<stdio.h>
> >  3 #include <stdlib.h>
> >  4 #define MSG_COMMON_HEADER()                     \
> >  5         u_int16_t len;                          \
> >  6         u_int16_t type;
> >  7
> >  8 struct any_msg {
> >  9           MSG_COMMON_HEADER ();
> > 10 };
> 
> 
> Won't this expand to:
> 
> struct any_msg {
>       u_int16_t len;
>       u_int16_t type;;
> }
> 
> Note the doulbe semi-colon. I'm not sure if that is valid C or not.
> It's definately not nice though.
> 
> Don't know if that is the problem or not, but could be.
> 
> Cheers,
> 
> Benno
> 
It's not the reason, because I drop the semicolon on the line # 9, it
still have the same parse error.

> > 12 int main( int argc , char** argv)
> > 13 {
> > 14         struct any_msg msg = {
> > 15                 .type = 0,
> > 16                 .len = 4};
> > 17         printf( "msg.type = %d msg.len = %d\n", msg.type,msg.len);
> > 18         return 0;
> > 19 }
> >
> >Using the splint cmd:
> >     splint +posixlib macro_splint.c
> >it outputs:
> >     
> >        Splint 3.1.1 --- 06 Jan 2006
> >        
> >        macro_splint.c:9:13: Parse Error. (For help on parse errors, see
> >        splint -help
> >                       parseerrors.)
> >        *** Cannot continue.
> >It seems like splint can't parse the MSG_COMMON_HEADER() macro.
> >
> >Has anyone met this problem?
> >
> >Thanks a lot
> >
> >
> >_______________________________________________
> >splint-discuss mailing list
> >[email protected]
> >http://www.cs.Virginia.EDU/mailman-2.1.5/listinfo/splint-discuss
> _______________________________________________
> splint-discuss mailing list
> [email protected]
> http://www.cs.Virginia.EDU/mailman-2.1.5/listinfo/splint-discuss
> 


_______________________________________________
splint-discuss mailing list
[email protected]
http://www.cs.Virginia.EDU/mailman-2.1.5/listinfo/splint-discuss

Reply via email to