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