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