macro_fn_lparen_scan.c revision 5f016e2cb5d11daeb237544de1c5d59f20fe1a6e
1// RUN: clang -E %s | grep 'noexp: foo y' &&
2// RUN: clang -E %s | grep 'expand: abc' &&
3// RUN: clang -E %s | grep 'noexp2: foo nonexp' &&
4// RUN: clang -E %s | grep 'expand2: abc'
5
6#define A foo
7#define foo() abc
8#define X A y
9
10// This should not expand to abc, because the foo macro isn't followed by (.
11noexp: X
12
13
14// This should expand to abc.
15#undef X
16#define X A ()
17expand: X
18
19
20// This should be 'foo nonexp'
21noexp2: A nonexp
22
23// This should expand
24expand2: A (
25)
26
27
28