diff options
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 } */ + |