Fortran: fix passing a procedure pointer to c_funloc [PR124652]

	PR fortran/124652

gcc/fortran/ChangeLog:

	* trans-expr.cc (gfc_conv_procedure_call): Do not clobber a
	procedure pointer intent(out) argument.
	* trans-intrinsic.cc (conv_isocbinding_function): When passing to
	C_FUNLOC a procedure pointer that is a dummy, dereference it.

gcc/testsuite/ChangeLog:

	* gfortran.dg/c_funloc_tests_10.f90: New test.
3 files changed