Fix fortran size_type_node parameter passing.

2019-05-22  Andrew Stubbs  <ams@codesourcery.com>

	gcc/fortran/
	* trans-stmt.c (gfc_trans_critical): Use size_type_node for
	gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls.
	(gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all
	call.

From-SVN: r271512
This commit is contained in:
Andrew Stubbs 2019-05-22 13:12:03 +00:00 committed by Andrew Stubbs
parent 88a8126a90
commit 0f09fc8a84
2 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2019-05-22 Andrew Stubbs <ams@codesourcery.com>
* trans-stmt.c (gfc_trans_critical): Use size_type_node for
gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls.
(gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all
call.
2019-05-22 Jeff Law <law@redhat.com> 2019-05-22 Jeff Law <law@redhat.com>
Mark Eggleston <mark.eggleston@codethink.com> Mark Eggleston <mark.eggleston@codethink.com>

View File

@ -1576,12 +1576,13 @@ gfc_trans_critical (gfc_code *code)
if (flag_coarray == GFC_FCOARRAY_LIB) if (flag_coarray == GFC_FCOARRAY_LIB)
{ {
tree zero_size = build_zero_cst (size_type_node);
token = gfc_get_symbol_decl (code->resolved_sym); token = gfc_get_symbol_decl (code->resolved_sym);
token = GFC_TYPE_ARRAY_CAF_TOKEN (TREE_TYPE (token)); token = GFC_TYPE_ARRAY_CAF_TOKEN (TREE_TYPE (token));
tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_lock, 7, tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_lock, 7,
token, integer_zero_node, integer_one_node, token, zero_size, integer_one_node,
null_pointer_node, null_pointer_node, null_pointer_node, null_pointer_node,
null_pointer_node, integer_zero_node); null_pointer_node, zero_size);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
/* It guarantees memory consistency within the same segment */ /* It guarantees memory consistency within the same segment */
@ -1601,10 +1602,11 @@ gfc_trans_critical (gfc_code *code)
if (flag_coarray == GFC_FCOARRAY_LIB) if (flag_coarray == GFC_FCOARRAY_LIB)
{ {
tree zero_size = build_zero_cst (size_type_node);
tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_unlock, 6, tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_unlock, 6,
token, integer_zero_node, integer_one_node, token, zero_size, integer_one_node,
null_pointer_node, null_pointer_node, null_pointer_node, null_pointer_node,
integer_zero_node); zero_size);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
/* It guarantees memory consistency within the same segment */ /* It guarantees memory consistency within the same segment */
@ -6772,9 +6774,10 @@ gfc_trans_allocate (gfc_code * code)
if (needs_caf_sync) if (needs_caf_sync)
{ {
/* Add a sync all after the allocation has been executed. */ /* Add a sync all after the allocation has been executed. */
tree zero_size = build_zero_cst (size_type_node);
tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_sync_all, tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_sync_all,
3, null_pointer_node, null_pointer_node, 3, null_pointer_node, null_pointer_node,
integer_zero_node); zero_size);
gfc_add_expr_to_block (&post, tmp); gfc_add_expr_to_block (&post, tmp);
} }