diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-13 01:29:17 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-13 01:29:17 +0000 |
commit | 0af3ba17486de80987f8f22f5d418cef781a471c (patch) | |
tree | b8fa061796bbaae27e8510974f1fbe5924ff483b /clang/test | |
parent | 0d6c061401d9b06cbcdc1cb3511d3b5332cee3d8 (diff) | |
download | bcm5719-llvm-0af3ba17486de80987f8f22f5d418cef781a471c.tar.gz bcm5719-llvm-0af3ba17486de80987f8f22f5d418cef781a471c.zip |
implement the microsoft/gnu "__COUNTER__" macro: rdar://4329310
llvm-svn: 68933
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Lexer/counter.c | 16 | ||||
-rw-r--r-- | clang/test/PCH/variables.c | 6 | ||||
-rw-r--r-- | clang/test/PCH/variables.h | 8 |
3 files changed, 29 insertions, 1 deletions
diff --git a/clang/test/Lexer/counter.c b/clang/test/Lexer/counter.c new file mode 100644 index 00000000000..9b2c2c7434f --- /dev/null +++ b/clang/test/Lexer/counter.c @@ -0,0 +1,16 @@ +// __COUNTER__ support: rdar://4329310 +// RUN: clang -E %s > %t && + +#define PASTE2(x,y) x##y +#define PASTE1(x,y) PASTE2(x,y) +#define UNIQUE(x) PASTE1(x,__COUNTER__) + +// RUN: grep "A: 0" %t && +A: __COUNTER__ + +// RUN: grep "B: foo1" %t && +B: UNIQUE(foo); +// RUN: grep "C: foo2" %t && +C: UNIQUE(foo); +// RUN: grep "D: 3" %t +D: __COUNTER__ diff --git a/clang/test/PCH/variables.c b/clang/test/PCH/variables.c index 749b7b6741b..f725e7d8f05 100644 --- a/clang/test/PCH/variables.c +++ b/clang/test/PCH/variables.c @@ -15,4 +15,8 @@ double z; // expected-error{{redefinition}} int Q = A_MACRO_IN_THE_PCH; -int R = FUNCLIKE_MACRO(A_MACRO_, IN_THE_PCH);
\ No newline at end of file +int R = FUNCLIKE_MACRO(A_MACRO_, IN_THE_PCH); + + +int UNIQUE(a); // a2 +int *Arr[] = { &a0, &a1, &a2 }; diff --git a/clang/test/PCH/variables.h b/clang/test/PCH/variables.h index 7b27671328e..82e87aaf4bf 100644 --- a/clang/test/PCH/variables.h +++ b/clang/test/PCH/variables.h @@ -16,3 +16,11 @@ int MAKE_HAPPY(Very); #define A_MACRO_IN_THE_PCH 492 #define FUNCLIKE_MACRO(X, Y) X ## Y + +#define PASTE2(x,y) x##y +#define PASTE1(x,y) PASTE2(x,y) +#define UNIQUE(x) PASTE1(x,__COUNTER__) + +int UNIQUE(a); // a0 +int UNIQUE(a); // a1 + |