summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-13 01:29:17 +0000
committerChris Lattner <sabre@nondot.org>2009-04-13 01:29:17 +0000
commit0af3ba17486de80987f8f22f5d418cef781a471c (patch)
treeb8fa061796bbaae27e8510974f1fbe5924ff483b /clang/test
parent0d6c061401d9b06cbcdc1cb3511d3b5332cee3d8 (diff)
downloadbcm5719-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.c16
-rw-r--r--clang/test/PCH/variables.c6
-rw-r--r--clang/test/PCH/variables.h8
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
+
OpenPOWER on IntegriCloud