home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lclint.zip / lclint-2_3h-os2-bin.zip / test / macros.c < prev    next >
Text File  |  1997-09-03  |  1KB  |  28 lines

  1. # define mustard(a,b) ((a) + b + a) /* 1, 2, 3, 4. no proto, 2 no parens, a used twice */
  2. # define ketchup(a)   (a) /* 5. no proto */
  3.  
  4. # define ok(a, b) ((a) + (b))
  5. #define needparen(a, b) (a + b)           /* 6, 7. no parens a and b */
  6. # define needuse(a, b) (a)                /* 8. b not used */
  7. # define multuse(a, b) ((a) + (a) + (b))  /* 9. a used twice */
  8. # define badassign(a,b) ((a) = (b))       /* 10. assignment to macro */
  9. # define badassign(a,b) ((a)++, ++(b))    /* 11, 12, 13. badassign already defined,
  10.                                      ++ on macro param */
  11.  
  12. # define predok(a,b) (((a) == 9) ? (b) : -(b)) 
  13. # define predbad(a,b) (((a) == 8) ? (b) : -3)  /* 14. b not used on false */
  14. # define predbad2(a, b) (((a) == 2) ? (a) : (b) + (b)) /* 15, 16, 17. a used twice, 
  15.                               b used twice, not in true */
  16. # define badorder(a,b) ((b)+(a)) /* ok */
  17. # define okorder(a,b,c) (((a) == 2) ? (b) + (c) : (b) - (c))
  18. # define okorder2(a,b,c) (((a) == 2) ? (((b) == 3) ? (c) : -(c)) : (b) - (c))
  19.  
  20. # define badval(a, b) ((a) == (b)) /* 18. return value */
  21. # define badconst 5                /* 19. type */
  22. # define goodconst ((5) == (3))
  23. # define worseconst(a) ((a) == 7)  /* 20. constant as parameterized macro */
  24.  
  25. # define var 5                     /* 21. var as macro */
  26. # define var2(x) ((x) + (x))       /* 22, 23. var as parameterized macro, x used twice */
  27. typedef int twerp ;
  28.