// RUN: %clang_cc1 -E %s | grep 'noexp: foo y'
// RUN: %clang_cc1 -E %s | grep 'expand: abc'
// RUN: %clang_cc1 -E %s | grep 'noexp2: foo nonexp'
// RUN: %clang_cc1 -E %s | grep 'expand2: abc'
#define A foo
#define foo() abc
#define X A y
// This should not expand to abc, because the foo macro isn't followed by (.
noexp: X
// This should expand to abc.
#undef X
#define X A ()
expand: X
// This should be 'foo nonexp'
noexp2: A nonexp
// This should expand
expand2: A (
)