aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-02-19 23:12:54 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-02-19 23:12:54 +0100
commit871b3f473a4bca51d05c1682efb5017385ec9e9e (patch)
treead24c0977ac86141c53e210365c0fdb3a06892eb /gcc
parent77a37715c6064b4253dc16d7a69ab1751f30a79a (diff)
downloadgcc-871b3f473a4bca51d05c1682efb5017385ec9e9e.zip
gcc-871b3f473a4bca51d05c1682efb5017385ec9e9e.tar.gz
gcc-871b3f473a4bca51d05c1682efb5017385ec9e9e.tar.bz2
re PR c++/69826 (problem with cilkplus pragma and preprocessor variable)
PR c++/69826 * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE. (init_pragma): Register PRAGMA_CILK_GRAINSIZE even for flag_preprocess_only. * c-c++-common/cilk-plus/CK/pr69826-1.c: New test. * c-c++-common/cilk-plus/CK/pr69826-2.c: New test. From-SVN: r233571
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog7
-rw-r--r--gcc/c-family/c-pragma.c9
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c25
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c6
5 files changed, 50 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index aca8cc2..90dd7fd 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,10 @@
+2016-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/69826
+ * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
+ (init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
+ flag_preprocess_only.
+
2016-02-16 Jakub Jelinek <jakub@redhat.com>
PR c/69835
diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c
index 38aabc0..c73aa82 100644
--- a/gcc/c-family/c-pragma.c
+++ b/gcc/c-family/c-pragma.c
@@ -1336,6 +1336,13 @@ c_pp_lookup_pragma (unsigned int id, const char **space, const char **name)
return;
}
+ if (id == PRAGMA_CILK_GRAINSIZE)
+ {
+ *space = "cilk";
+ *name = "grainsize";
+ return;
+ }
+
if (id >= PRAGMA_FIRST_EXTERNAL
&& (id < PRAGMA_FIRST_EXTERNAL + registered_pp_pragmas.length ()))
{
@@ -1523,7 +1530,7 @@ init_pragma (void)
cpp_register_deferred_pragma (parse_in, "GCC", "ivdep", PRAGMA_IVDEP, false,
false);
- if (flag_cilkplus && !flag_preprocess_only)
+ if (flag_cilkplus)
cpp_register_deferred_pragma (parse_in, "cilk", "grainsize",
PRAGMA_CILK_GRAINSIZE, true, false);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 74fd5c3..27b0027 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2016-02-19 Jakub Jelinek <jakub@redhat.com>
+ PR c++/69826
+ * c-c++-common/cilk-plus/CK/pr69826-1.c: New test.
+ * c-c++-common/cilk-plus/CK/pr69826-2.c: New test.
+
PR c++/69850
* g++.dg/warn/Wnonnull-compare-4.C: New test.
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c
new file mode 100644
index 0000000..bcf7727
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c
@@ -0,0 +1,25 @@
+/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-options "-fcilkplus" } */
+/* { dg-additional-options "-std=gnu99" { target c } } */
+/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
+
+#define GRAINSIZE 2
+
+int
+main ()
+{
+ int a[64];
+ #pragma cilk grainsize=GRAINSIZE
+ _Cilk_for (int i = 0; i < 64; i++)
+ a[i] = 0;
+ #pragma cilk grainsize =GRAINSIZE
+ _Cilk_for (int i = 0; i < 64; i++)
+ a[i]++;
+ #pragma cilk grainsize = GRAINSIZE
+ _Cilk_for (int i = 0; i < 64; i++)
+ a[i]++;
+ for (int i = 0; i < 64; i++)
+ if (a[i] != 2)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c
new file mode 100644
index 0000000..f4056c6
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c
@@ -0,0 +1,6 @@
+/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-options "-fcilkplus -save-temps" } */
+/* { dg-additional-options "-std=gnu99" { target c } } */
+/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
+
+#include "pr69826-1.c"