re PR middle-end/60469 (simple cilk plus program ICEs)
gcc/c/ PR middle-end/60469 * c-array-notation.c (fix_builtin_array_notation_fn): Use create_tmp_var instead build_decl for creating temps. (build_array_notation_expr): Likewise. (fix_conditional_array_notations_1): Likewise. (fix_array_notation_expr): Likewise. (fix_array_notation_call_expr): Likewise. gcc/testsuite/ PR middle-end/60469 * c-c++-common/cilk-plus/CK/pr60469.c: New test. From-SVN: r209336
This commit is contained in:
parent
5e7d8b4c02
commit
2f6babac7d
@ -1,3 +1,13 @@
|
||||
2014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
|
||||
|
||||
PR middle-end/60469
|
||||
* c-array-notation.c (fix_builtin_array_notation_fn): Use
|
||||
create_tmp_var instead build_decl for creating temps.
|
||||
(build_array_notation_expr): Likewise.
|
||||
(fix_conditional_array_notations_1): Likewise.
|
||||
(fix_array_notation_expr): Likewise.
|
||||
(fix_array_notation_call_expr): Likewise.
|
||||
|
||||
2014-03-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/60689
|
||||
|
@ -70,6 +70,7 @@
|
||||
#include "coretypes.h"
|
||||
#include "tree.h"
|
||||
#include "c-tree.h"
|
||||
#include "gimple-expr.h"
|
||||
#include "tree-iterator.h"
|
||||
#include "opts.h"
|
||||
#include "c-family/c-common.h"
|
||||
@ -282,8 +283,7 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var)
|
||||
|
||||
for (ii = 0; ii < rank; ii++)
|
||||
{
|
||||
an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
|
||||
integer_type_node);
|
||||
an_loop_info[ii].var = create_tmp_var (integer_type_node, NULL);
|
||||
an_loop_info[ii].ind_init =
|
||||
build_modify_expr (location, an_loop_info[ii].var,
|
||||
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR,
|
||||
@ -781,8 +781,8 @@ build_array_notation_expr (location_t location, tree lhs, tree lhs_origtype,
|
||||
for (ii = 0; ii < lhs_rank; ii++)
|
||||
if (lhs_an_info[0][ii].is_vector)
|
||||
{
|
||||
lhs_an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
|
||||
integer_type_node);
|
||||
lhs_an_loop_info[ii].var = create_tmp_var (integer_type_node,
|
||||
NULL);
|
||||
lhs_an_loop_info[ii].ind_init = build_modify_expr
|
||||
(location, lhs_an_loop_info[ii].var,
|
||||
TREE_TYPE (lhs_an_loop_info[ii].var), NOP_EXPR,
|
||||
@ -793,8 +793,8 @@ build_array_notation_expr (location_t location, tree lhs, tree lhs_origtype,
|
||||
{
|
||||
/* When we have a polynomial, we assume that the indices are of type
|
||||
integer. */
|
||||
rhs_an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
|
||||
integer_type_node);
|
||||
rhs_an_loop_info[ii].var = create_tmp_var (integer_type_node,
|
||||
NULL);
|
||||
rhs_an_loop_info[ii].ind_init = build_modify_expr
|
||||
(location, rhs_an_loop_info[ii].var,
|
||||
TREE_TYPE (rhs_an_loop_info[ii].var), NOP_EXPR,
|
||||
@ -970,8 +970,7 @@ fix_conditional_array_notations_1 (tree stmt)
|
||||
cilkplus_extract_an_triplets (array_list, list_size, rank, &an_info);
|
||||
for (ii = 0; ii < rank; ii++)
|
||||
{
|
||||
an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
|
||||
integer_type_node);
|
||||
an_loop_info[ii].var = create_tmp_var (integer_type_node, NULL);
|
||||
an_loop_info[ii].ind_init =
|
||||
build_modify_expr (location, an_loop_info[ii].var,
|
||||
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR,
|
||||
@ -1067,8 +1066,7 @@ fix_array_notation_expr (location_t location, enum tree_code code,
|
||||
loop_init = push_stmt_list ();
|
||||
for (ii = 0; ii < rank; ii++)
|
||||
{
|
||||
an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
|
||||
integer_type_node);
|
||||
an_loop_info[ii].var = create_tmp_var (integer_type_node, NULL);
|
||||
an_loop_info[ii].ind_init =
|
||||
build_modify_expr (location, an_loop_info[ii].var,
|
||||
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR,
|
||||
@ -1163,8 +1161,7 @@ fix_array_notation_call_expr (tree arg)
|
||||
}
|
||||
for (ii = 0; ii < rank; ii++)
|
||||
{
|
||||
an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
|
||||
integer_type_node);
|
||||
an_loop_info[ii].var = create_tmp_var (integer_type_node, NULL);
|
||||
an_loop_info[ii].ind_init =
|
||||
build_modify_expr (location, an_loop_info[ii].var,
|
||||
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR, location,
|
||||
|
@ -1,3 +1,8 @@
|
||||
2014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
|
||||
|
||||
PR middle-end/60469
|
||||
* c-c++-common/cilk-plus/CK/pr60469.c: New test.
|
||||
|
||||
2014-04-12 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* gcc.target/mips/umips-store16-1.c: New test.
|
||||
|
15
gcc/testsuite/c-c++-common/cilk-plus/CK/pr60469.c
Normal file
15
gcc/testsuite/c-c++-common/cilk-plus/CK/pr60469.c
Normal file
@ -0,0 +1,15 @@
|
||||
/* PR middle-end/60469 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fcilkplus" } */
|
||||
|
||||
void foo() {}
|
||||
|
||||
#define ALEN 1024
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int b[ALEN];
|
||||
b[:] = 100;
|
||||
_Cilk_spawn foo();
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user