Home | History | Annotate | Download | only in tests
      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