diff options
author | Balaji V. Iyer <balaji.v.iyer@intel.com> | 2013-06-07 22:16:24 +0000 |
---|---|---|
committer | Balaji V. Iyer <bviyer@gcc.gnu.org> | 2013-06-07 15:16:24 -0700 |
commit | 1509bddad22c4f2e5c003c7a8845ba64fe367699 (patch) | |
tree | a280811b021c9ee416d3b6a275ee4b0d32bdb3fd /gcc | |
parent | 88ac60d35f84f3067f64c5e76c2e13798b7da00e (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c/c-array-notation.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rwxr-xr-x | gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c | 14 |
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 } */ + |