blob: 20d26f2f773a451e4e227599858e81f3913bd161 [file] [log] [blame]
Douglas Gregor3f7c7f42009-10-30 16:50:04 +00001#define FOO
2#define BAR(X, Y) X, Y
3#define IDENTITY(X) X
4#define WIBBLE(...)
5
6enum Color {
7 Red, Green, Blue
8};
9
10struct Point {
11 float x, y, z;
12 enum Color color;
13};
14
15void test(struct Point *p) {
Daniel Dunbar4fcfde42009-11-08 01:45:36 +000016 // RUN: clang-cc -fsyntax-only -code-completion-macros -code-completion-at=%s:17:14 %s -o - | FileCheck -check-prefix=CC1 %s
Douglas Gregor3f7c7f42009-10-30 16:50:04 +000017 switch (p->IDENTITY(color)) {
Daniel Dunbar4fcfde42009-11-08 01:45:36 +000018 // RUN: clang-cc -fsyntax-only -code-completion-macros -code-completion-at=%s:19:9 %s -o - | FileCheck -check-prefix=CC2 %s
Douglas Gregor3f7c7f42009-10-30 16:50:04 +000019 case
20 }
21 // CC1: color
22 // CC1: x
23 // CC1: y
24 // CC1: z
25 // CC1: BAR(<#X#>, <#Y#>)
26 // CC1: FOO
27 // CC1: IDENTITY(<#X#>)
28 // CC1: WIBBLE
29 // CC2: Blue
30 // CC2: Green
31 // CC2: Red
32 // CC2: BAR(<#X#>, <#Y#>)
33 // CC2: FOO
34 // CC2: IDENTITY(<#X#>)
35 // CC2: WIBBLE
Douglas Gregor3f7c7f42009-10-30 16:50:04 +000036}