gcc/libgfortran/intrinsics
Paul Thomas ee65440cbd Fortran: Fix some problems with the reduce intrinsic [PR119460]
2025-04-09  Paul Thomas  <pault@gcc.gnu.org>
	    and Harald Anlauf  <anlauf@gcc.gnu.org>

gcc/fortran
	PR fortran/119460
	* iresolve.cc (generate_reduce_op_wrapper): Increase the size
	of 'tname'. Change intent of 'a' and 'b' to intent_in.
	* trans-decl.cc (add_argument_checking): Do not test artificial
	formal symbols.
	* trans-expr.cc (gfc_conv_procedure_call): Remove reduce_scalar
	and the blocks triggered by it.
	* trans-intrinsic.cc (gfc_conv_intrinsic_function): Set the
	result of non-character, scalar reduce to be allocatable.

gcc/testsuite/
	PR fortran/119460
	* gfortran.dg/reduce_2.f90: Add test to check that deferred len
	characters cannot slip through.
	* gfortran.dg/reduce_3.f90: New test
	* gfortran.dg/reduce_4.f90: New test

libgfortran/
	PR libfortran/119460
	* intrinsics/reduce.c (reduce): Correct error message about
	mismatch between dim and the rank of array. Output the values
	of both. Correct the evaluation of the result stride and
	extent.
	(reduce_scalar): The front end treats the result as an
	allocatable so eliminate memcpy and free. Return the base-addr
	of the local descriptor.
	(reduce_c): Correct the type of the string lengths.
	(reduce_scalar_c): Correct the type of the string lengths.Test
	to see if 'res' is allocated. If not then return the base_addr
	of the local descriptor.
2025-04-09 09:50:04 +01:00
..
abort.c Update copyright years. 2025-01-02 11:59:57 +01:00
access.c Update copyright years. 2025-01-02 11:59:57 +01:00
args.c Update copyright years. 2025-01-02 11:59:57 +01:00
associated.c Update copyright years. 2025-01-02 11:59:57 +01:00
c99_functions.c Update copyright years. 2025-01-02 11:59:57 +01:00
chdir.c Update copyright years. 2025-01-02 11:59:57 +01:00
chmod.c Update copyright years. 2025-01-02 11:59:57 +01:00
clock.c Update copyright years. 2025-01-02 11:59:57 +01:00
cpu_time.c Update copyright years. 2025-01-02 11:59:57 +01:00
cshift0.c Update copyright years. 2025-01-02 11:59:57 +01:00
ctime.c Update copyright years. 2025-01-02 11:59:57 +01:00
date_and_time.c Update copyright years. 2025-01-02 11:59:57 +01:00
dprod_r8.f90 Update copyright years. 2025-01-02 11:59:57 +01:00
dtime.c Update copyright years. 2025-01-02 11:59:57 +01:00
env.c Update copyright years. 2025-01-02 11:59:57 +01:00
eoshift0.c Update copyright years. 2025-01-02 11:59:57 +01:00
eoshift2.c Update copyright years. 2025-01-02 11:59:57 +01:00
erfc_scaled.c Update copyright years. 2025-01-02 11:59:57 +01:00
erfc_scaled_inc.c Update copyright years. 2025-01-02 11:59:57 +01:00
etime.c Update copyright years. 2025-01-02 11:59:57 +01:00
execute_command_line.c Update copyright years. 2025-01-02 11:59:57 +01:00
exit.c Update copyright years. 2025-01-02 11:59:57 +01:00
extends_type_of.c Update copyright years. 2025-01-02 11:59:57 +01:00
f2c_specifics.F90 Update copyright years. 2025-01-02 11:59:57 +01:00
fnum.c Update copyright years. 2025-01-02 11:59:57 +01:00
gerror.c Update copyright years. 2025-01-02 11:59:57 +01:00
getcwd.c Update copyright years. 2025-01-02 11:59:57 +01:00
getlog.c Update copyright years. 2025-01-02 11:59:57 +01:00
getXid.c Update copyright years. 2025-01-02 11:59:57 +01:00
hostnm.c Update copyright years. 2025-01-02 11:59:57 +01:00
ierrno.c Update copyright years. 2025-01-02 11:59:57 +01:00
is_contiguous.c Update copyright years. 2025-01-02 11:59:57 +01:00
ishftc.c Update copyright years. 2025-01-02 11:59:57 +01:00
kill.c Update copyright years. 2025-01-02 11:59:57 +01:00
link.c Update copyright years. 2025-01-02 11:59:57 +01:00
move_alloc.c Update copyright years. 2025-01-02 11:59:57 +01:00
mvbits.c Update copyright years. 2025-01-02 11:59:57 +01:00
pack_generic.c Update copyright years. 2025-01-02 11:59:57 +01:00
perror.c Update copyright years. 2025-01-02 11:59:57 +01:00
rand.c Update copyright years. 2025-01-02 11:59:57 +01:00
random.c Update copyright years. 2025-01-02 11:59:57 +01:00
random_init.f90 Update copyright years. 2025-01-02 11:59:57 +01:00
reduce.c Fortran: Fix some problems with the reduce intrinsic [PR119460] 2025-04-09 09:50:04 +01:00
rename.c Update copyright years. 2025-01-02 11:59:57 +01:00
reshape_generic.c Update copyright years. 2025-01-02 11:59:57 +01:00
reshape_packed.c Update copyright years. 2025-01-02 11:59:57 +01:00
selected_char_kind.c Update copyright years. 2025-01-02 11:59:57 +01:00
selected_int_kind.f90 Update copyright years. 2025-01-02 11:59:57 +01:00
selected_real_kind.f90 Update copyright years. 2025-01-02 11:59:57 +01:00
signal.c Update copyright years. 2025-01-02 11:59:57 +01:00
size.c Update copyright years. 2025-01-02 11:59:57 +01:00
sleep.c Update copyright years. 2025-01-02 11:59:57 +01:00
spread_generic.c Update copyright years. 2025-01-02 11:59:57 +01:00
stat.c Update copyright years. 2025-01-02 11:59:57 +01:00
string_intrinsics.c Update copyright years. 2025-01-02 11:59:57 +01:00
string_intrinsics_inc.c Update copyright years. 2025-01-02 11:59:57 +01:00
symlnk.c Update copyright years. 2025-01-02 11:59:57 +01:00
system.c Update copyright years. 2025-01-02 11:59:57 +01:00
system_clock.c Update copyright years. 2025-01-02 11:59:57 +01:00
time.c Update copyright years. 2025-01-02 11:59:57 +01:00
time_1.h Update copyright years. 2025-01-02 11:59:57 +01:00
trigd.c Update copyright years. 2025-01-02 11:59:57 +01:00
trigd.inc Update copyright years. 2025-01-02 11:59:57 +01:00
trigd_lib.inc Update copyright years. 2025-01-02 11:59:57 +01:00
umask.c Update copyright years. 2025-01-02 11:59:57 +01:00
unlink.c Update copyright years. 2025-01-02 11:59:57 +01:00
unpack_generic.c Update copyright years. 2025-01-02 11:59:57 +01:00