aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBalaji V. Iyer <balaji.v.iyer@intel.com>2013-06-07 22:16:24 +0000
committerBalaji V. Iyer <bviyer@gcc.gnu.org>2013-06-07 15:16:24 -0700
commit1509bddad22c4f2e5c003c7a8845ba64fe367699 (patch)
treea280811b021c9ee416d3b6a275ee4b0d32bdb3fd /gcc
parent88ac60d35f84f3067f64c5e76c2e13798b7da00e (diff)
downloadgcc-1509bddad22c4f2e5c003c7a8845ba64fe367699.zip
gcc-1509bddad22c4f2e5c003c7a8845ba64fe367699.tar.gz
gcc-1509bddad22c4f2e5c003c7a8845ba64fe367699.tar.bz2
re PR middle-end/57541 ([Cilkplus]: internal compiler error: in gimplify_expr, at gimplify.c:7809)
Fixed PR 57541. gcc/c/ChangeLog 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-array-notation.c (expand_array_notation_exprs): Added ARRAY_NOTATION_REF case. gcc/testsuite/ChangeLog 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> PR middle-end/57541 * c-c++-common/cilk-plus/AN/pr57541.c: New test case. From-SVN: r199837
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/ChangeLog5
-rw-r--r--gcc/c/c-array-notation.c8
-rw-r--r--gcc/testsuite/ChangeLog5
-rwxr-xr-xgcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c14
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 7f5b5a9..5fbb31f 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,5 +1,10 @@
2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
+ * c-array-notation.c (expand_array_notation_exprs): Added
+ ARRAY_NOTATION_REF case.
+
+2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
* c-array-notation.c (length_mismatch_in_expr_p): Moved this
function to c-family/array-notation-common.c.
(is_cilkplus_reduce_builtin): Likewise.
diff --git a/gcc/c/c-array-notation.c b/gcc/c/c-array-notation.c
index 7b13687..b1040da 100644
--- a/gcc/c/c-array-notation.c
+++ b/gcc/c/c-array-notation.c
@@ -2317,6 +2317,14 @@ expand_array_notation_exprs (tree t)
case RETURN_EXPR:
if (contains_array_notation_expr (t))
t = fix_return_expr (t);
+ return t;
+ case ARRAY_NOTATION_REF:
+ /* IF we are here, then we are dealing with cases like this:
+ A[:];
+ A[x:y:z];
+ A[x:y];
+ Replace those with just void zero node. */
+ t = void_zero_node;
default:
return t;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dce1515..55a3ce6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR middle-end/57541
+ * c-c++-common/cilk-plus/AN/pr57541.c: New test case.
+
2013-06-07 Jan Hubicka <jh@suse.cz>
* gcc.dg/tree-ssa/attr-alias.c: Remove brackets in template.
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c
new file mode 100755
index 0000000..cabdb23
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-fcilkplus" } */
+
+int A[10];
+
+int main () {
+ char c = (char)N; /* { dg-error "undeclared" } */
+ short s = (short)N;
+ long l = (long)N;
+ A[l:s:c];
+}
+
+/* { dg-message "note: each" "defined" { target *-*-* } 7 } */
+