summaryrefslogtreecommitdiffstats
path: root/test/Preprocessor/openmp-macro-expansion.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-06-21 14:00:56 +0000
committerdim <dim@FreeBSD.org>2015-06-21 14:00:56 +0000
commit9dd834653b811ad20382e98a87dff824980c9916 (patch)
treea764184c2fc9486979b074250b013a0937ee64e5 /test/Preprocessor/openmp-macro-expansion.c
parentbb9760db9b86e93a638ed430d0a14785f7ff9064 (diff)
downloadFreeBSD-src-9dd834653b811ad20382e98a87dff824980c9916.zip
FreeBSD-src-9dd834653b811ad20382e98a87dff824980c9916.tar.gz
Vendor import of clang trunk r240225:
https://llvm.org/svn/llvm-project/cfe/trunk@240225
Diffstat (limited to 'test/Preprocessor/openmp-macro-expansion.c')
-rw-r--r--test/Preprocessor/openmp-macro-expansion.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/Preprocessor/openmp-macro-expansion.c b/test/Preprocessor/openmp-macro-expansion.c
new file mode 100644
index 0000000..a83512b
--- /dev/null
+++ b/test/Preprocessor/openmp-macro-expansion.c
@@ -0,0 +1,31 @@
+// RUN: %clang_cc1 -fopenmp -E -o - %s 2>&1 | FileCheck %s
+
+// This is to make sure the pragma name is not expanded!
+#define omp (0xDEADBEEF)
+
+#define N 2
+#define M 1
+#define E N>
+
+#define map_to_be_expanded(x) map(tofrom:x)
+#define sched_to_be_expanded(x,s) schedule(x,s)
+#define reda_to_be_expanded(x) reduction(+:x)
+#define redb_to_be_expanded(x,op) reduction(op:x)
+
+void foo(int *a, int *b) {
+ //CHECK: omp target map(a[0:2]) map(tofrom:b[0:2*1])
+ #pragma omp target map(a[0:N]) map_to_be_expanded(b[0:2*M])
+ {
+ int reda;
+ int redb;
+ //CHECK: omp parallel for schedule(static,2> >1) reduction(+:reda) reduction(*:redb)
+ #pragma omp parallel for sched_to_be_expanded(static, E>1) \
+ reda_to_be_expanded(reda) redb_to_be_expanded(redb,*)
+ for (int i = 0; i < N; ++i) {
+ reda += a[i];
+ redb += b[i];
+ }
+ a[0] = reda;
+ b[0] = redb;
+ }
+}
OpenPOWER on IntegriCloud