Commit c2a11bfc by Roger Sayle Committed by Roger Sayle

trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE masks instead of LOGICAL*4.


	* trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE
	masks instead of LOGICAL*4.

From-SVN: r110617
parent 5a1a4450
2006-02-05 Roger Sayle <roger@eyesopen.com>
* trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE
masks instead of LOGICAL*4.
2006-02-05 Jakub Jelinek <jakub@redhat.com> 2006-02-05 Jakub Jelinek <jakub@redhat.com>
* resolve.c (resolve_symbol): Initialize constructor_expr to NULL. * resolve.c (resolve_symbol): Initialize constructor_expr to NULL.
......
...@@ -2639,6 +2639,7 @@ gfc_evaluate_where_mask (gfc_expr * me, forall_info * nested_forall_info, ...@@ -2639,6 +2639,7 @@ gfc_evaluate_where_mask (gfc_expr * me, forall_info * nested_forall_info,
tree inner_size, size; tree inner_size, size;
stmtblock_t body, body1, inner_size_body; stmtblock_t body, body1, inner_size_body;
gfc_se lse, rse; gfc_se lse, rse;
tree mask_type;
tree count; tree count;
tree tmpexpr; tree tmpexpr;
...@@ -2652,9 +2653,12 @@ gfc_evaluate_where_mask (gfc_expr * me, forall_info * nested_forall_info, ...@@ -2652,9 +2653,12 @@ gfc_evaluate_where_mask (gfc_expr * me, forall_info * nested_forall_info,
size = compute_overall_iter_number (nested_forall_info, inner_size, size = compute_overall_iter_number (nested_forall_info, inner_size,
&inner_size_body, block); &inner_size_body, block);
/* As the mask array can be very big, prefer compact boolean types. */
mask_type = gfc_get_logical_type (gfc_logical_kinds[0].kind);
/* Allocate temporary for where mask. */ /* Allocate temporary for where mask. */
tmp = allocate_temp_for_forall_nest_1 (boolean_type_node, size, block, tmp = allocate_temp_for_forall_nest_1 (mask_type, size, block, &ptemp1);
&ptemp1);
/* Record the temporary address in order to free it later. */ /* Record the temporary address in order to free it later. */
if (ptemp1) if (ptemp1)
{ {
...@@ -2666,8 +2670,8 @@ gfc_evaluate_where_mask (gfc_expr * me, forall_info * nested_forall_info, ...@@ -2666,8 +2670,8 @@ gfc_evaluate_where_mask (gfc_expr * me, forall_info * nested_forall_info,
} }
/* Allocate temporary for !mask. */ /* Allocate temporary for !mask. */
ntmp = allocate_temp_for_forall_nest_1 (boolean_type_node, size, block, ntmp = allocate_temp_for_forall_nest_1 (mask_type, size, block, &ptemp2);
&ptemp2);
/* Record the temporary in order to free it later. */ /* Record the temporary in order to free it later. */
if (ptemp2) if (ptemp2)
{ {
......
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