/* * THIS TESTS: * - good #define * - invoking good #define * - using macro in arguments to itself * - invoking macro with parens from a different expansion level * - macro definitions with comments */ #define EMPTY #define EMPTY_WITH_PAREN() #define GOOD_NO_PAREN /*DON'T DUPLICATE ME*/ FoodBard #define GOOD_WITH_PAREN() /*DON'T DUPLICATE ME*/ SuperDuper EMPTY #define GOOD_WITH_ARG(a/*DON'T FRET ME*/) /*DON'T DUPLICATE ME*/ (a + 1) EMPTY_WITH_PAREN() #define MASK GOOD_WITH_ARG(10) #define UNUSUAL() 5 * GOOD_WITH_PAREN GOOD_NO_PAREN; EMPTY_WITH_PAREN; GOOD_WITH_PAREN; GOOD_WITH_PAREN(); GOOD_WITH_ARG(2); GOOD_WITH_ARG(3*MASK); UNUSUAL()(); GOOD_WITH_PAREN