aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2017-01-17 15:27:18 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2017-01-17 15:27:18 +0000
commit7f991c3616dc18e1082af9685308b96f8dc9d741 (patch)
tree2944afaaa35b6a66e50c65e580fa3ee6db37d028
parentc6b8b5e4d32f1e151002fd52d18d21cf235ea791 (diff)
downloadgcc-7f991c3616dc18e1082af9685308b96f8dc9d741.zip
gcc-7f991c3616dc18e1082af9685308b96f8dc9d741.tar.gz
gcc-7f991c3616dc18e1082af9685308b96f8dc9d741.tar.bz2
re PR c/79116 (ICE on cilkplus array notation with a _Cilk_for)
PR c/79116 * array-notation-common.c (cilkplus_extract_an_triplets): Convert start type to integer_type. From-SVN: r244533
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/array-notation-common.c4
-rw-r--r--gcc/testsuite/gcc.dg/cilk-plus/pr79116.c9
3 files changed, 18 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 6138f52..8ea74d7 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-17 Aldy Hernandez <aldyh@redhat.com>
+
+ PR c/79116
+ * array-notation-common.c (cilkplus_extract_an_triplets): Convert
+ start type to integer_type.
+
2017-01-16 Jakub Jelinek <jakub@redhat.com>
PR driver/49726
diff --git a/gcc/c-family/array-notation-common.c b/gcc/c-family/array-notation-common.c
index 061c203..3b95332 100644
--- a/gcc/c-family/array-notation-common.c
+++ b/gcc/c-family/array-notation-common.c
@@ -628,7 +628,9 @@ cilkplus_extract_an_triplets (vec<tree, va_gc> *list, size_t size, size_t rank,
tree ii_tree = array_exprs[ii][jj];
(*node)[ii][jj].is_vector = true;
(*node)[ii][jj].value = ARRAY_NOTATION_ARRAY (ii_tree);
- (*node)[ii][jj].start = ARRAY_NOTATION_START (ii_tree);
+ (*node)[ii][jj].start
+ = fold_build1 (CONVERT_EXPR, integer_type_node,
+ ARRAY_NOTATION_START (ii_tree));
(*node)[ii][jj].length
= fold_build1 (CONVERT_EXPR, integer_type_node,
ARRAY_NOTATION_LENGTH (ii_tree));
diff --git a/gcc/testsuite/gcc.dg/cilk-plus/pr79116.c b/gcc/testsuite/gcc.dg/cilk-plus/pr79116.c
new file mode 100644
index 0000000..9206aaf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cilk-plus/pr79116.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-fcilkplus" } */
+
+int array[1024];
+void foo()
+{
+ _Cilk_for (int i = 0; i < 512; ++i)
+ array[:] = __sec_implicit_index(0);
+}