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