Douglas Gregor | 3f7c7f4 | 2009-10-30 16:50:04 +0000 | [diff] [blame] | 1 | #define FOO |
| 2 | #define BAR(X, Y) X, Y |
| 3 | #define IDENTITY(X) X |
| 4 | #define WIBBLE(...) |
| 5 | |
| 6 | enum Color { |
| 7 | Red, Green, Blue |
| 8 | }; |
| 9 | |
| 10 | struct Point { |
| 11 | float x, y, z; |
| 12 | enum Color color; |
| 13 | }; |
| 14 | |
| 15 | void test(struct Point *p) { |
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 16 | // RUN: clang-cc -fsyntax-only -code-completion-macros -code-completion-at=%s:17:14 %s -o - | FileCheck -check-prefix=CC1 %s |
Douglas Gregor | 3f7c7f4 | 2009-10-30 16:50:04 +0000 | [diff] [blame] | 17 | switch (p->IDENTITY(color)) { |
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 18 | // RUN: clang-cc -fsyntax-only -code-completion-macros -code-completion-at=%s:19:9 %s -o - | FileCheck -check-prefix=CC2 %s |
Douglas Gregor | 3f7c7f4 | 2009-10-30 16:50:04 +0000 | [diff] [blame] | 19 | 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 Gregor | 3f7c7f4 | 2009-10-30 16:50:04 +0000 | [diff] [blame] | 36 | } |