Commit 37da9343 by Roger Sayle Committed by Roger Sayle

re PR fortran/25270 (testcases fail with a type mismatch)


	PR fortran/25270
	* trans-array.c (gfc_trans_allocate_array_storage): In array index
	calculations use gfc_index_zero_node and gfc_index_one_node instead
	of integer_zero_node and integer_one_node respectively.
	(gfc_conv_array_transpose): Likewise.
	(gfc_conv_ss_startstride): Likewise.
	(gfc_trans_dummy_array_bias): Likewise.

From-SVN: r112608
parent 9ccab91c
2006-04-01 Roger Sayle <roger@eyesopen.com> 2006-04-01 Roger Sayle <roger@eyesopen.com>
PR fortran/25270
* trans-array.c (gfc_trans_allocate_array_storage): In array index
calculations use gfc_index_zero_node and gfc_index_one_node instead
of integer_zero_node and integer_one_node respectively.
(gfc_conv_array_transpose): Likewise.
(gfc_conv_ss_startstride): Likewise.
(gfc_trans_dummy_array_bias): Likewise.
2006-04-01 Roger Sayle <roger@eyesopen.com>
* dependency.c (gfc_is_inside_range): Delete. * dependency.c (gfc_is_inside_range): Delete.
(gfc_check_element_vs_section): Significant rewrite. (gfc_check_element_vs_section): Significant rewrite.
......
...@@ -514,7 +514,7 @@ gfc_trans_allocate_array_storage (stmtblock_t * pre, stmtblock_t * post, ...@@ -514,7 +514,7 @@ gfc_trans_allocate_array_storage (stmtblock_t * pre, stmtblock_t * post,
{ {
/* Make a temporary variable to hold the data. */ /* Make a temporary variable to hold the data. */
tmp = fold_build2 (MINUS_EXPR, TREE_TYPE (nelem), nelem, tmp = fold_build2 (MINUS_EXPR, TREE_TYPE (nelem), nelem,
integer_one_node); gfc_index_one_node);
tmp = build_range_type (gfc_array_index_type, gfc_index_zero_node, tmp = build_range_type (gfc_array_index_type, gfc_index_zero_node,
tmp); tmp);
tmp = build_array_type (gfc_get_element_type (TREE_TYPE (desc)), tmp = build_array_type (gfc_get_element_type (TREE_TYPE (desc)),
...@@ -726,9 +726,9 @@ gfc_conv_array_transpose (gfc_se * se, gfc_expr * expr) ...@@ -726,9 +726,9 @@ gfc_conv_array_transpose (gfc_se * se, gfc_expr * expr)
gcc_assert (src_info->dimen == 2); gcc_assert (src_info->dimen == 2);
for (n = 0; n < 2; n++) for (n = 0; n < 2; n++)
{ {
dest_info->delta[n] = integer_zero_node; dest_info->delta[n] = gfc_index_zero_node;
dest_info->start[n] = integer_zero_node; dest_info->start[n] = gfc_index_zero_node;
dest_info->stride[n] = integer_one_node; dest_info->stride[n] = gfc_index_one_node;
dest_info->dim[n] = n; dest_info->dim[n] = n;
dest_index = gfc_rank_cst[n]; dest_index = gfc_rank_cst[n];
...@@ -2445,7 +2445,7 @@ gfc_conv_ss_startstride (gfc_loopinfo * loop) ...@@ -2445,7 +2445,7 @@ gfc_conv_ss_startstride (gfc_loopinfo * loop)
gfc_start_block (&block); gfc_start_block (&block);
fault = integer_zero_node; fault = boolean_false_node;
for (n = 0; n < loop->dimen; n++) for (n = 0; n < loop->dimen; n++)
size[n] = NULL_TREE; size[n] = NULL_TREE;
...@@ -3545,7 +3545,7 @@ gfc_trans_dummy_array_bias (gfc_symbol * sym, tree tmpdesc, tree body) ...@@ -3545,7 +3545,7 @@ gfc_trans_dummy_array_bias (gfc_symbol * sym, tree tmpdesc, tree body)
partial = gfc_create_var (boolean_type_node, "partial"); partial = gfc_create_var (boolean_type_node, "partial");
TREE_USED (partial) = 1; TREE_USED (partial) = 1;
tmp = gfc_conv_descriptor_stride (dumdesc, gfc_rank_cst[0]); tmp = gfc_conv_descriptor_stride (dumdesc, gfc_rank_cst[0]);
tmp = fold_build2 (EQ_EXPR, boolean_type_node, tmp, integer_one_node); tmp = fold_build2 (EQ_EXPR, boolean_type_node, tmp, gfc_index_one_node);
gfc_add_modify_expr (&block, partial, tmp); gfc_add_modify_expr (&block, partial, tmp);
} }
else else
...@@ -3561,7 +3561,7 @@ gfc_trans_dummy_array_bias (gfc_symbol * sym, tree tmpdesc, tree body) ...@@ -3561,7 +3561,7 @@ gfc_trans_dummy_array_bias (gfc_symbol * sym, tree tmpdesc, tree body)
stride = gfc_conv_descriptor_stride (dumdesc, gfc_rank_cst[0]); stride = gfc_conv_descriptor_stride (dumdesc, gfc_rank_cst[0]);
stride = gfc_evaluate_now (stride, &block); stride = gfc_evaluate_now (stride, &block);
tmp = build2 (EQ_EXPR, boolean_type_node, stride, integer_zero_node); tmp = build2 (EQ_EXPR, boolean_type_node, stride, gfc_index_zero_node);
tmp = build3 (COND_EXPR, gfc_array_index_type, tmp, tmp = build3 (COND_EXPR, gfc_array_index_type, tmp,
gfc_index_one_node, stride); gfc_index_one_node, stride);
stride = GFC_TYPE_ARRAY_STRIDE (type, 0); stride = GFC_TYPE_ARRAY_STRIDE (type, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment