• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* This works. */
2 #define foo(a) (a)
3 #define bar two,words
4 foo(bar)
5 
6 /* So does this. */
7 #define foo2(a,b) (a separate b)
8 #define foo2_wrap(a) foo2(a)
9 foo2_wrap(bar)
10 
11 /* But this generates an error. */
12 #define foo_wrap(a) foo(a)
13 foo_wrap(bar)
14 
15 /* Adding parentheses to foo_wrap fixes it. */
16 #define foo_wrap_parens(a) foo((a))
17 foo_wrap_parens(bar)
18 
19 /* As does adding parentheses to bar */
20 #define bar_parens (two,words)
21 foo_wrap(bar_parens)
22 foo_wrap_parens(bar_parens)
23 
24 
25