Commit 996d027a by Alessandro Fanfarillo Committed by Mikael Morin

Fix fortran double address operator with co_reduce

gcc/fortran/
2015-07-17  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

	* trans-intrinsic.c (conv_co_collective): Remove redundant address
	operator in the generated code.

gcc/testsuite/
2015-07-17  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

	* gfortran.dg/co_reduce_1.f90: New file.

From-SVN: r225930
parent c92f5b13
2015-07-17 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
* trans-intrinsic.c (conv_co_collective): Remove redundant address
operator in the generated code.
2015-07-17 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/66035
......
......@@ -8804,7 +8804,7 @@ conv_co_collective (gfc_code *code)
}
opr_flags = build_int_cst (integer_type_node, opr_flag_int);
gfc_conv_expr (&argse, opr_expr);
opr = gfc_build_addr_expr (NULL_TREE, argse.expr);
opr = argse.expr;
fndecl = build_call_expr_loc (input_location, fndecl, 8, array, opr, opr_flags,
image_index, stat, errmsg, strlen, errmsg_len);
}
......
2015-07-17 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
* gfortran.dg/co_reduce_1.f90: New file.
2015-07-17 H.J. Lu <hongjiu.lu@intel.com>
PR target/66824
......
! { dg-do compile }
! { dg-additional-options "-fdump-tree-original -fcoarray=lib" }
!
! Check that we don't take twice the address of procedure simple_reduction
! in the generated code.
!
! Contributed by Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
program simple_reduce
implicit none
integer :: me
me = this_image()
sync all
call co_reduce(me,simple_reduction)
write(*,*) this_image(),me
contains
pure function simple_reduction(a,b)
integer,intent(in) :: a,b
integer :: simple_reduction
simple_reduction = a * b
end function simple_reduction
end program simple_reduce
! { dg-final { scan-tree-dump "_gfortran_caf_co_reduce \\(&desc\\.\\d+,\\s*simple_reduction," "original" } }
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