2026-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127738
	* caf/shmem.c (new_team_id): New function.
	(_gfortran_caf_form_team): Use it.  Count the FORM TEAM statements
	of the current team.
	(_gfortran_caf_change_team): Derive the coarray ids from the team's
	id.
	* caf/shmem/supervisor.c (ensure_shmem_initialization): Initialize
	the id of the initial team and the next team id.
	* caf/shmem/supervisor.h (struct supervisor): Add next_team_id.
	* caf/shmem/teams_mgmt.h (struct caf_shmem_team): Add teams_formed.
	(struct shmem_image_info): Replace lastmemid by id.  Add new_teams
	and new_teams_gen.

2026-10-17  Sam James  <sam@gentoo.org>

	* configure: Regenerate.

2026-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127753
	* caf/shmem/shared_memory.c (ENV_FD): New.
	(shared_memory_init): Pass the descriptor to the images through
	ENV_FD and unlink the object.  Use the inherited descriptor in an
	image.  Exclude the mapping from core dumps.
	(shared_memory_cleanup): Do not unlink an unlinked object.

2026-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* caf/shmem/thread_support.c (initialize_shared_mutex)
	(initialize_shared_errorcheck_mutex): Do not make the mutex robust.
	* caf/shmem/thread_support.h: Remove the executable bit.

2026-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127751
	* caf/shmem.c (_gfortran_caf_register): Handle a failed allocation
	of a component.
	(_gfortran_caf_form_team): Report a failed allocation.
	* caf/shmem/alloc.c (get_memory_by_id_internal): Return NULL when
	the shared memory is exhausted.
	* caf/shmem/alloc.h (alloc_get_memory_by_id): Document it.
	* caf/shmem/allocator.c (allocator_shared_malloc_or_die): New
	function.
	* caf/shmem/allocator.h (allocator_shared_malloc): Document the null
	result.
	(allocator_shared_malloc_or_die): Declare.
	* caf/shmem/collective_subroutine.c (collsub_init_supervisor)
	(get_collsub_buf): Use allocator_shared_malloc_or_die.
	* caf/shmem/hashmap.c (hashmap_init_supervisor)
	(enlarge_hashmap_mem): Likewise.
	* caf/shmem/sync.c (sync_init_supervisor): Likewise.
	* caf/shmem/shared_memory.c (shared_memory_get_mem_with_alignment):
	Return a null pointer when the shared memory is exhausted.
	* caf/shmem/supervisor.c (ensure_shmem_initialization): Terminate
	when the initial team cannot be allocated.

2026-10-16  Pietro Monteiro  <pietro@sociotechnical.xyz>

	* Makefile.in: Regenerate.
	* acinclude.m4: Include ../config/mmap.m4.

2026-10-16  Pietro Monteiro  <pietro@sociotechnical.xyz>

	PR bootstrap/103459
	* configure: Regenerate.

2026-10-13  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/127845
	* generated/findloc1_c10.c (mfindloc1_c10): Regenerate.
	* generated/findloc1_c16.c (mfindloc1_c16): Likewise.
	* generated/findloc1_c17.c (mfindloc1_c17): Likewise.
	* generated/findloc1_c4.c (mfindloc1_c4): Likewise.
	* generated/findloc1_c8.c (mfindloc1_c8): Likewise.
	* generated/findloc1_i1.c (mfindloc1_i1): Likewise.
	* generated/findloc1_i16.c (mfindloc1_i16): Likewise.
	* generated/findloc1_i2.c (mfindloc1_i2): Likewise.
	* generated/findloc1_i4.c (mfindloc1_i4): Likewise.
	* generated/findloc1_i8.c (mfindloc1_i8): Likewise.
	* generated/findloc1_r10.c (mfindloc1_r10): Likewise.
	* generated/findloc1_r16.c (mfindloc1_r16): Likewise.
	* generated/findloc1_r17.c (mfindloc1_r17): Likewise.
	* generated/findloc1_r4.c (mfindloc1_r4): Likewise.
	* generated/findloc1_r8.c (mfindloc1_r8): Likewise.
	* generated/findloc1_s1.c (mfindloc1_s1): Likewise.
	* generated/findloc1_s4.c (mfindloc1_s4): Likewise.
	* m4/ifindloc1.m4: Properly advance through MASK array argument when
	MASK and DIM are present.

2026-10-13  Harald Anlauf  <anlauf@gmx.de>
	    Federico Perini  <federico.perini@gmail.com>

	PR fortran/127846
	* generated/maxloc0_16_i1.c (mmaxloc0_16_i1): Regenerate.
	* generated/maxloc0_16_i16.c (mmaxloc0_16_i16): Likewise.
	* generated/maxloc0_16_i2.c (mmaxloc0_16_i2): Likewise.
	* generated/maxloc0_16_i4.c (mmaxloc0_16_i4): Likewise.
	* generated/maxloc0_16_i8.c (mmaxloc0_16_i8): Likewise.
	* generated/maxloc0_16_m1.c (mmaxloc0_16_m1): Likewise.
	* generated/maxloc0_16_m16.c (mmaxloc0_16_m16): Likewise.
	* generated/maxloc0_16_m2.c (mmaxloc0_16_m2): Likewise.
	* generated/maxloc0_16_m4.c (mmaxloc0_16_m4): Likewise.
	* generated/maxloc0_16_m8.c (mmaxloc0_16_m8): Likewise.
	* generated/maxloc0_16_r10.c (mmaxloc0_16_r10): Likewise.
	* generated/maxloc0_16_r16.c (mmaxloc0_16_r16): Likewise.
	* generated/maxloc0_16_r17.c (mmaxloc0_16_r17): Likewise.
	* generated/maxloc0_16_r4.c (mmaxloc0_16_r4): Likewise.
	* generated/maxloc0_16_r8.c (mmaxloc0_16_r8): Likewise.
	* generated/maxloc0_4_i1.c (mmaxloc0_4_i1): Likewise.
	* generated/maxloc0_4_i16.c (mmaxloc0_4_i16): Likewise.
	* generated/maxloc0_4_i2.c (mmaxloc0_4_i2): Likewise.
	* generated/maxloc0_4_i4.c (mmaxloc0_4_i4): Likewise.
	* generated/maxloc0_4_i8.c (mmaxloc0_4_i8): Likewise.
	* generated/maxloc0_4_m1.c (mmaxloc0_4_m1): Likewise.
	* generated/maxloc0_4_m16.c (mmaxloc0_4_m16): Likewise.
	* generated/maxloc0_4_m2.c (mmaxloc0_4_m2): Likewise.
	* generated/maxloc0_4_m4.c (mmaxloc0_4_m4): Likewise.
	* generated/maxloc0_4_m8.c (mmaxloc0_4_m8): Likewise.
	* generated/maxloc0_4_r10.c (mmaxloc0_4_r10): Likewise.
	* generated/maxloc0_4_r16.c (mmaxloc0_4_r16): Likewise.
	* generated/maxloc0_4_r17.c (mmaxloc0_4_r17): Likewise.
	* generated/maxloc0_4_r4.c (mmaxloc0_4_r4): Likewise.
	* generated/maxloc0_4_r8.c (mmaxloc0_4_r8): Likewise.
	* generated/maxloc0_8_i1.c (mmaxloc0_8_i1): Likewise.
	* generated/maxloc0_8_i16.c (mmaxloc0_8_i16): Likewise.
	* generated/maxloc0_8_i2.c (mmaxloc0_8_i2): Likewise.
	* generated/maxloc0_8_i4.c (mmaxloc0_8_i4): Likewise.
	* generated/maxloc0_8_i8.c (mmaxloc0_8_i8): Likewise.
	* generated/maxloc0_8_m1.c (mmaxloc0_8_m1): Likewise.
	* generated/maxloc0_8_m16.c (mmaxloc0_8_m16): Likewise.
	* generated/maxloc0_8_m2.c (mmaxloc0_8_m2): Likewise.
	* generated/maxloc0_8_m4.c (mmaxloc0_8_m4): Likewise.
	* generated/maxloc0_8_m8.c (mmaxloc0_8_m8): Likewise.
	* generated/maxloc0_8_r10.c (mmaxloc0_8_r10): Likewise.
	* generated/maxloc0_8_r16.c (mmaxloc0_8_r16): Likewise.
	* generated/maxloc0_8_r17.c (mmaxloc0_8_r17): Likewise.
	* generated/maxloc0_8_r4.c (mmaxloc0_8_r4): Likewise.
	* generated/maxloc0_8_r8.c (mmaxloc0_8_r8): Likewise.
	* generated/minloc0_16_i1.c (mminloc0_16_i1): Likewise.
	* generated/minloc0_16_i16.c (mminloc0_16_i16): Likewise.
	* generated/minloc0_16_i2.c (mminloc0_16_i2): Likewise.
	* generated/minloc0_16_i4.c (mminloc0_16_i4): Likewise.
	* generated/minloc0_16_i8.c (mminloc0_16_i8): Likewise.
	* generated/minloc0_16_m1.c (mminloc0_16_m1): Likewise.
	* generated/minloc0_16_m16.c (mminloc0_16_m16): Likewise.
	* generated/minloc0_16_m2.c (mminloc0_16_m2): Likewise.
	* generated/minloc0_16_m4.c (mminloc0_16_m4): Likewise.
	* generated/minloc0_16_m8.c (mminloc0_16_m8): Likewise.
	* generated/minloc0_16_r10.c (mminloc0_16_r10): Likewise.
	* generated/minloc0_16_r16.c (mminloc0_16_r16): Likewise.
	* generated/minloc0_16_r17.c (mminloc0_16_r17): Likewise.
	* generated/minloc0_16_r4.c (mminloc0_16_r4): Likewise.
	* generated/minloc0_16_r8.c (mminloc0_16_r8): Likewise.
	* generated/minloc0_4_i1.c (mminloc0_4_i1): Likewise.
	* generated/minloc0_4_i16.c (mminloc0_4_i16): Likewise.
	* generated/minloc0_4_i2.c (mminloc0_4_i2): Likewise.
	* generated/minloc0_4_i4.c (mminloc0_4_i4): Likewise.
	* generated/minloc0_4_i8.c (mminloc0_4_i8): Likewise.
	* generated/minloc0_4_m1.c (mminloc0_4_m1): Likewise.
	* generated/minloc0_4_m16.c (mminloc0_4_m16): Likewise.
	* generated/minloc0_4_m2.c (mminloc0_4_m2): Likewise.
	* generated/minloc0_4_m4.c (mminloc0_4_m4): Likewise.
	* generated/minloc0_4_m8.c (mminloc0_4_m8): Likewise.
	* generated/minloc0_4_r10.c (mminloc0_4_r10): Likewise.
	* generated/minloc0_4_r16.c (mminloc0_4_r16): Likewise.
	* generated/minloc0_4_r17.c (mminloc0_4_r17): Likewise.
	* generated/minloc0_4_r4.c (mminloc0_4_r4): Likewise.
	* generated/minloc0_4_r8.c (mminloc0_4_r8): Likewise.
	* generated/minloc0_8_i1.c (mminloc0_8_i1): Likewise.
	* generated/minloc0_8_i16.c (mminloc0_8_i16): Likewise.
	* generated/minloc0_8_i2.c (mminloc0_8_i2): Likewise.
	* generated/minloc0_8_i4.c (mminloc0_8_i4): Likewise.
	* generated/minloc0_8_i8.c (mminloc0_8_i8): Likewise.
	* generated/minloc0_8_m1.c (mminloc0_8_m1): Likewise.
	* generated/minloc0_8_m16.c (mminloc0_8_m16): Likewise.
	* generated/minloc0_8_m2.c (mminloc0_8_m2): Likewise.
	* generated/minloc0_8_m4.c (mminloc0_8_m4): Likewise.
	* generated/minloc0_8_m8.c (mminloc0_8_m8): Likewise.
	* generated/minloc0_8_r10.c (mminloc0_8_r10): Likewise.
	* generated/minloc0_8_r16.c (mminloc0_8_r16): Likewise.
	* generated/minloc0_8_r17.c (mminloc0_8_r17): Likewise.
	* generated/minloc0_8_r4.c (mminloc0_8_r4): Likewise.
	* generated/minloc0_8_r8.c (mminloc0_8_r8): Likewise.
	* m4/maxloc0.m4: Fix looping through array argument when BACK=.true.
	* m4/minloc0.m4: Likewise.

2026-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127837
	* caf/shmem.c (_gfortran_caf_end_team): Wait with
	counter_barrier_wait and set STAT= with TEAM_HEALTH_CHECK when
	an image of the team stopped or failed.  Do not pass STAT= to
	_gfortran_caf_deregister.
	* caf/shmem/counter_barrier.c (counter_barrier_wait): Add
	TERMINATED argument.
	* caf/shmem/counter_barrier.h (counter_barrier_wait): Likewise.
	* caf/shmem/sync.c (sync_team): Update call.

2026-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127684
	* caf/shmem.c (_gfortran_caf_sync_images): Do not return early for
	a stopped or failed image.  Check the images only when one of them
	terminated.
	(mark_stopped): Use notify_image_terminated.
	(_gfortran_caf_fail_image): Likewise.
	* caf/shmem/supervisor.c (supervisor_main_loop): Likewise.  Do not
	signal the images waiting in sync_table.
	* caf/shmem/sync.c (stopped_image_in): New function.
	(sync_table): Return whether an image of the set terminated.  Stop
	waiting when an image of the set stopped.
	(notify_image_terminated): New function.
	* caf/shmem/sync.h (sync_table): Return bool.
	(notify_image_terminated): Declare.

2026-10-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127702
	* caf/shmem.c (_gfortran_caf_num_images, _gfortran_caf_image_status)
	(_gfortran_caf_form_team): Take the size of a team from its image
	map.
	* caf/shmem/collective_subroutine.c (collsub_reduce_array):
	Likewise.

2026-10-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127347
	* caf/shmem.c (_gfortran_caf_register): Allocate a part for every
	image of the program.

2026-10-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127347
	* caf/shmem.c (_gfortran_caf_init): Synchronize without the checks
	of the SYNC ALL statement.
	(_gfortran_caf_sync_all, _gfortran_caf_sync_team): Report the images
	of the team that terminated before the images synchronized.
	(_gfortran_caf_form_team): Register the team.
	* caf/shmem/collective_subroutine.c (collsub_sync): Adjust.
	* caf/shmem/counter_barrier.c (counter_barrier_init): Initialize the
	new fields.
	(counter_barrier_add_locked): Count the images removed from the
	barrier.
	(next_round): Take that count as a completed round ends.
	(wait_round, counter_barrier_wait_abortable): Report it for the round
	the image took part in.
	* caf/shmem/counter_barrier.h (counter_barrier): Add terminated and
	round_terminated.
	(counter_barrier_wait_abortable): Adjust.
	* caf/shmem/supervisor.c (ensure_shmem_initialization): Initialize
	the list of teams.  Register the initial team.
	(supervisor_main_loop): Drop an image that terminated without
	leaving its teams from them.
	* caf/shmem/supervisor.h (supervisor): Add teams.
	* caf/shmem/sync.c (sync_all, sync_team_unless_stopped): Report the
	images that terminated.
	* caf/shmem/sync.h (sync_all, sync_team_unless_stopped): Adjust.
	* caf/shmem/teams_mgmt.c (team_terminated_images)
	(update_teams_images_locked, leave_team): Take the team's image
	info.
	(register_team, update_registered_teams): New functions.
	* caf/shmem/teams_mgmt.h (shmem_image_info): Add next_team.
	(register_team, update_registered_teams): Declare.

2026-10-02  LIU Hao  <lh_mouse@126.com>

	* configure.ac: Set `enable_caf_shmem` to true for Cygwin and MinGW hosts.
	* configure: Regenerate.

2026-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127347
	* caf/shmem.c (_gfortran_caf_co_broadcast, _gfortran_caf_co_sum)
	(_gfortran_caf_co_min, _gfortran_caf_co_max)
	(_gfortran_caf_co_reduce): Report a terminated image of the team
	through STAT.
	* caf/shmem/collective_subroutine.c (collsub_sync): Return whether
	the images were synchronized.
	(collsub_reduce_array, collsub_broadcast_array): Likewise.  Give up
	when an image of the team terminated.
	* caf/shmem/collective_subroutine.h (collsub_reduce_array)
	(collsub_broadcast_array): Adjust.

2026-09-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127347
	* caf/shmem.c (_gfortran_caf_sync_all, _gfortran_caf_sync_team):
	Have the effect of SYNC MEMORY with a stopped image.  Check the
	images of the team synchronized.
	(_gfortran_caf_sync_images): Check the images synchronized.  Fix
	the format of the duplicate image error.
	(mark_stopped, _gfortran_caf_fail_image): Tell leave_teams whether
	the image stopped.
	(_gfortran_caf_co_broadcast, _gfortran_caf_co_sum)
	(_gfortran_caf_co_min, _gfortran_caf_co_max)
	(_gfortran_caf_co_reduce): Report terminated images of the team.
	* caf/shmem/collective_subroutine.c (collsub_sync): Give up when an
	image of the team terminated.
	* caf/shmem/counter_barrier.c (counter_barrier_init): Initialize the
	new fields.
	(next_round, wait_round): New functions.
	(counter_barrier_wait): Use wait_round.  Take part in the next round
	when a round is aborted.
	(counter_barrier_wait_abortable, counter_barrier_abort_locked): New
	functions.
	* caf/shmem/counter_barrier.h (counter_barrier): Make
	curr_wait_group a round number.  Add aborted_round,
	abortable_arrivals and aborting.
	(counter_barrier_wait_abortable, counter_barrier_abort_locked):
	Declare.
	* caf/shmem/sync.c (sync_all): Return whether the images were
	synchronized.
	(sync_team_unless_stopped): New function.
	* caf/shmem/sync.h (sync_all): Adjust.
	(sync_team_unless_stopped): Declare.
	* caf/shmem/teams_mgmt.c (count_images, team_terminated_images)
	(update_teams_images_locked, leave_team): New functions.
	(update_teams_images): Use update_teams_images_locked.
	(leave_teams): Add stopped argument.  Use leave_team.
	(check_health): Classify the given images.  Return the stat value.
	* caf/shmem/teams_mgmt.h (leave_teams, check_health): Adjust.
	(TEAM_HEALTH_CHECK): New macro.
	(HEALTH_CHECK): Use it.

2026-09-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127347
	* caf/shmem.c (mark_stopped): New function.
	(_gfortran_caf_stop_numeric, _gfortran_caf_stop_str): Call it.
	(_gfortran_caf_fail_image): Call leave_teams.
	* caf/shmem/supervisor.c (supervisor_main_loop): Keep the status an
	image recorded for itself.
	* caf/shmem/sync.c (sync_table): Use the total number of images as
	the row stride.  Handle an image list and all images alike.
	* caf/shmem/teams_mgmt.c (leave_teams): New function.
	* caf/shmem/teams_mgmt.h (leave_teams): Declare.

2026-09-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/127347
	* caf/shmem.c (mark_error_stopped): New function.
	(_gfortran_caf_error_stop_str, _gfortran_caf_error_stop): Call it.
	* caf/shmem/supervisor.c (supervisor_main_loop): Terminate all
	images when an image error stopped.
	* caf/shmem/supervisor.h (image_status): Add IMAGE_ERROR_STOP.

2026-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/126964
	* intrinsics/associated.c (stride_in_bytes): New function.
	(associated): Require the element length or the span to agree
	rather than the span alone, and compare the stride in bytes
	rather than the stride.

2026-09-04  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Account for missing runtime support for
	PTHREAD_PROCESS_SHARED on Darwin versions earlier that
	Darwin11.

2026-09-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/126777
	* caf/single.c (_gfortran_caf_team_number): Treat a null team
	handle as the current team.

2026-08-13  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/126799
	* caf/shmem/collective_subroutine.c (collsub_broadcast_array): Use
	the element length field instead of the span field as element size.

2026-08-13  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/126799
	* caf/shmem/collective_subroutine.c (collsub_reduce_array): Use
	the element length field instead of the span field as element size.

2026-08-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/118793
	* io/io.h (NML_ERR_MSG_LEN): New macro.
	(st_parameter_dt): Add nml_err_pending bit.
	(gfc_unit): Add nml_err_msg.
	* io/list_read.c (nml_error): New function.
	(eat_separator): Use new function
	(convert_integer): Likewise.
	(convert_unsigned): Likewise.
	(parse_repeat): Likewise.  Save the position where the repeat
	count starts and report it.
	(read_logical): Likewise.
	(read_integer): Likewise.
	(parse_real): Likewise.
	(read_complex): Likewise.
	(read_real): Likewise.
	(check_type): Likewise.
	(list_formatted_read_scalar): Likewise.
	(read_character): Likewise.  Save the initial position of the value
	(nml_read_obj): Unwind to nml_err_ret on a deferred error.
	(namelist_read): Store deferred errors in the unit's nml_err_msg
	buffer.

2026-07-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* intrinsics/reduce.c (reduce): Fix the mask_present.

2026-07-25  John David Anglin  <danglin@gcc.gnu.org>

	* intrinsics/ceill_16.c: Fix whitespace.

2026-07-24  John David Anglin  <danglin@gcc.gnu.org>

	PR libfortran/126305
	* c99_protos.h (acosl, acoshl, asinl, asinhl,atan2l, atanl,
	atanhl, ceill, cosl, coshl, expl, hypotl, logl, sinl, sinhl,
	sqrtl, tanl, tanhl, truncl, nextafterl, powl, erfl, erfcl):
	Add declarations.
	* configure.ac (powl, erfl): Add GCC_CHECK_MATH_FUNCs.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* intrinsics/c99_functions.c: Include math_imp.h.  Move code
	to manipulate the floating-point type to math_imp.h.
	(erfl, erfcl, acosl, acoshl, asinl, asinhl, atan2l, atanl,
	atanhl, ceill, cosl, coshl, expl, floorl, fmodl, hypotl,
	logl, sinl, sinhl, sqrtl, tanl, tanhl, truncl, nextafterl,
	powl, log10l): Implement.
	(frexpl): Move code to intrinsics/frexpl_16.c.
	(scalbnl): Move code to intrinsics/scalbnl_16.c.
	* intrinsics/ceill_16.c: New.
	* intrinsics/floorl_16.c: New.
	* intrinsics/frexpl_16.c: New.
	* intrinsics/math_imp.h: New.
	* intrinsics/nextafterl_16.c: New.
	* intrinsics/scalbnl_16.c: New.
	* intrinsics/truncl_16.c: New.
	* libgfortran.h (USE_LIBQUADLIB): Define on hppa-hpux.

2026-07-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/93727
	* io/list_read.c (parse_real): Parse the possible hexadecimal
	float formatted and then allow the convert_real function to
	validate the result.

2026-07-15  John David Anglin  <danglin@gcc.gnu.org>

	* caf/shmem/shared_memory.c (shared_memory_set_env): Don't
	quote ENV_PPID.
	(shared_memory_init) Don't quote ENV_BASE.

2026-07-15  John David Anglin  <danglin@gcc.gnu.org>

	* libgfortran.h (FMT_Z): Define.
	* caf/shmem/alloc.c (get_memory_by_id_internal): Use FMT_Z.
	(alloc_free_memory_with_id): Likewise.
	* caf/shmem/supervisor.c (get_memory_size_from_envvar): Likewise.
	* caf/shmem/thread_support.c (get_handle): Likewise.
	(thread_support_init_supervisor): Likewise.
	* intrinsics/reduce.c (reduce): Likewise.

2026-07-15  John David Anglin  <danglin@gcc.gnu.org>

	PR libfortran/125623
	* c99_protos.h: (strnlen, frexpl, scalbnl): Declare if HAVE_STRNLEN,
	HAVE_FREXPL, HAVE_SCALBNL aren't defined, respectively.
	* intrinsics/c99_functions.c (strnlen, frexpl, scalbnl): Implement.
	* libgfortran.h: Include string.h if HAVE_STRING_H.

2026-07-15  John David Anglin  <danglin@gcc.gnu.org>

	* caf/shmem/shared_memory.c (SHM_NAME_FMTD, SHM_NAME_FMTS): Define.
	(shared_memory_init) Use SHM_NAME_FMTD format to generate
	shm_name.
	(shared_memory_cleanup): Use SHM_NAME_FMTS to generate shm_name.
	* caf/shmem/supervisor.c (get_memory_size_from_envvar): Use
	1 GB on 64-bit Windows and HP-UX.

2026-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/126116
	* io/io.h (struct gfc_unit): Add bool for tracking.
	Fix some white space problems.
	* io/unit.c (close_unit_1): Add a declaration for this
	function so it can be called before it has been defined.
	Use the new bool.
	(is_internal_reserved): New helper function. Returns true
	only if the unit is not null and the internal unit kind is zero
	meaning its not a character string.
	(find_unit): Use the new helper function
	(find_or_create_unit): Use the new helper.
	(get_unit): Set the new bool.
	(close_unit): Update the close_unit_1 argument list.
	(close_units): Likewise.

2026-07-06  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121366
	* Makefile.am: Add dependency on wrappers to degree trigonometric
	functions.
	* Makefile.in: Regenerate.
	* gfortran.map: Add references to new wrapper functions.
	* intrinsics/trigd_specific.F90: New file.

2026-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure: Regenerate.
	cherry picked from approved upstream pull request
	AX_PTHREAD: Fix pthread detection on Solaris 11.4
	https://github.com/autoconf-archive/autoconf-archive/pull/341

2026-06-29  Pietro Monteiro  <pietro@sociotechnical.xyz>

	PR bootstrap/103459
	* acinclude.m4: Replace AC_TRY_COMPILE with AC_COMPILE_IFELSE.
	* configure.ac: Replace AC_LANG_C with AC_LANG([C]).  Replace
	AM_PROG_LIBTOOL with LT_INIT.

2026-06-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/118793
	* io/file_pos.c (st_rewind): Reset line and column numbers.
	* io/io.h: Add line and column number to the gfc_unit
	structure.
	* io/list_read.c (next_char_default): Increment the column
	position and line number as needed.
	(next_char_internal): Likewise.
	(next_char_utf8): Likewise.
	(nml_err_ret): Build the expanded diagnostic message.
	* io/unit.c (insert_unit): Initialize the line_number.

2026-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/118774
	* io/transfer.c (formatted_transfer_scalar_write): Set nspaces
	to number of skips for FMT_X.

2026-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/114618
	* io/transfer.c (formatted_transfer_scalar_write): Determine
	possible new max_pos based on file I/O method and adjust
	accordingly

2026-06-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/82086
	* io/list_read.c (nml_read_obj): Add is_component parameter
	to correctly distribute repeat count across derived-type array
	elements.

2026-06-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/30438
	PR fortran/28004
	* mk-kinds-h.sh: Add print statement so test will compile with -Wall -Werror.
	* mk-sik-inc.sh: Likewise.
	* mk-srk-inc.sh: Likewise.

2026-06-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/93727
	* io/read.c (read_ex): New function implementing EX format read.
	* io/io.h (read_ex): Declare.
	* io/transfer.c (formatted_transfer_scalar_read): Add FMT_EX case
	dispatching to read_ex.

2026-05-30  Dhruv Chawla  <dhruvc@nvidia.com>

	* caf/caf_error.h (caf_runtime_error): Fix typos.
	* caf/libcaf.h: Likewise.
	* caf/mpi.c (caf_runtime_error): Likewise.
	* caf/shmem.c (_gfortran_caf_deregister): Likewise.
	* caf/shmem/alloc.h: Likewise.
	* caf/shmem/shared_memory.c (shared_memory_get_env): Likewise.
	* caf/shmem/supervisor.h (struct caf_shmem_token): Likewise.
	* caf/shmem/teams_mgmt.h (struct caf_shmem_team): Likewise.
	* caf/single.c (caf_runtime_error): Likewise.
	(_gfortran_caf_deregister): Likewise.
	* intrinsics/args.c (get_command_i4): Likewise.
	* intrinsics/chmod.c: Likewise.
	* intrinsics/env.c (PREFIX): Likewise.
	* intrinsics/trigd.c: Likewise.
	* io/async.c (init_adv_cond): Likewise.
	* io/file_pos.c (st_rewind): Likewise.
	* io/format.c (parse_format_list): Likewise.
	* io/open.c (new_unit): Likewise.
	(st_open): Likewise.
	* io/transfer.c (write_block): Likewise.
	(unformatted_read): Likewise.
	(unformatted_write): Likewise.
	(formatted_transfer_scalar_write): Likewise.
	* io/transfer128.c (export_proto): Likewise.
	* io/unix.c (buf_init): Likewise.
	(mem_read): Likewise.
	* io/write.c (btoa): Likewise.
	(list_formatted_write): Likewise.
	* runtime/select_inc.c (select_string): Likewise.

2026-05-29  Peter Damianov  <peter0x44@disroot.org>

	* caf/shmem/shared_memory.c (shared_memory_init): Use
	MapViewOfFileEx instead of MapViewOfFileExNuma.

2026-05-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/93727
	* io/write.c (write_ex): Replace simple truncation with
	rounding-aware logic respecting dtp round_status.  Add carry
	propagation and integer-digit normalization.
	* io/write_float.def: Change use of GFC_UINTEGER_8 to
	long long unsigned.

2026-05-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/93727
	* io/write_float.def (get_float_hex_string): Fix kind=8 frac_part
	from unsigned long to GFC_UINTEGER_8 to correct truncated hex
	output and IEEE_INVALID_FLAG on ILP32 targets.  Update kind=10
	and kind=16 to use GFC_UINTEGER_8 for consistency.
	Assisted by: Claude Sonnet 4.6

2026-05-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Harald Anlauf  <anlauf@gcc.gnu.org>

	PR fortran/93727
	* io/format.c (format_lex): Add new FMT_EX token handing.
	(parse_format_list): Likewise.
	(next_format): Likewise
	* io/io.h (write_ex): Add prototype for new function.
	(internal_proto): Likewise.
	* io/transfer.c (formatted_transfer_scalar_write): Use FMT_EX token.
	* io/write.c (write_default_char4): White space fix.
	(write_a): White space fix.
	(write_boz): White space fix.
	(write_decimal): White space fix.
	(otoa_big): White space fix.
	(write_character): White space fix.
	(write_float_0): White space fix.
	(write_ex): New function which uses the new helper function
	get_float_hex_string() to build the hexadecimal float format for
	output.
	(write_real): White space fix.
	(write_complex): White space fix.
	(nml_write_obj): White space fix.
	(namelist_write): White space fix.
	* io/write_float.def: Add defines to handle the various forms of
	KIND=16 floats. These handle the selection of the appropriate versions
	of the frexp, fabs, and scalbn used to extract the components of the
	floating point values.
	(GFC_REAL_16_FREXP): New define.
	(GFC_REAL_16_FABS): New define.
	(GFC_REAL_16_SCALBN): New define.
	(get_float_hex_string): New function which exatracts the bits and builds
	the basic hexadecimal format strings into a buffer. The buffer is provided
	by the caller write_ex.
	(build_float_string): White space fix.
	(quadmath_snprintf): White space fix.
	(determine_en_precision): White space fix.

2026-05-22  Tobias Burnus  <tburnus@baylibre.com>

	* m4/matmul.m4: Fix comment typo.
	* generated/matmul_c10.c: Regenerate.
	* generated/matmul_c16.c: Regenerate.
	* generated/matmul_c17.c: Regenerate.
	* generated/matmul_c4.c: Regenerate.
	* generated/matmul_c8.c: Regenerate.
	* generated/matmul_i1.c: Regenerate.
	* generated/matmul_i16.c: Regenerate.
	* generated/matmul_i2.c: Regenerate.
	* generated/matmul_i4.c: Regenerate.
	* generated/matmul_i8.c: Regenerate.
	* generated/matmul_r10.c: Regenerate.
	* generated/matmul_r16.c: Regenerate.
	* generated/matmul_r17.c: Regenerate.
	* generated/matmul_r4.c: Regenerate.
	* generated/matmul_r8.c: Regenerate.

2026-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* caf/shmem/sync.h (lock_t): Rename to caf_shmem_lock_t.
	* caf/shmem.c: Adapt uses.

2026-05-08  Harald Anlauf  <anlauf@gmx.de>

	PR libfortran/125087
	* io/format.c (free_format_data): Change argument from pointer to
	format_data to pointer to pointer of object.
	(free_format_hash_table): Adjust argument passed to
	free_format_data.
	(save_parsed_format): Likewise.
	* io/format.h (free_format_data): Adjust prototype.
	* io/transfer.c (st_read_done_worker): Adjust argument passed to
	free_format_data.
	(st_write_done_worker): Likewise.

2026-05-06  Harald Anlauf  <anlauf@gmx.de>

	PR libfortran/125095
	* io/list_read.c (read_logical): Eat comments in namelist read mode.
	(read_integer): Likewise.
	(read_character): Likewise.
	(read_complex): Likewise.
	(read_real): Likewise.

2026-05-05  Pietro Monteiro  <pietro@sociotechnical.xyz>

	* Makefile.in: Regenerate.
	* acinclude.m4: Delete LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY.
	* aclocal.m4: Regenerate.
	* configure: Likewise.
	* configure.ac: Use GCC_CHECK_ATTRIBUTE_VISIBILITY istead of
	LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY.

2026-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/120431
	* m4/spread.m4: Fix scalar source case with ncopies < 0.
	* generated/spread_c10.c: Regenerated.
	* generated/spread_c16.c: Ditto.
	* generated/spread_c17.c: Ditto.
	* generated/spread_c4.c: Ditto.
	* generated/spread_c8.c: Ditto.
	* generated/spread_i1.c: Ditto.
	* generated/spread_i16.c: Ditto.
	* generated/spread_i2.c: Ditto.
	* generated/spread_i4.c: Ditto.
	* generated/spread_i8.c: Ditto.
	* generated/spread_r10.c: Ditto.
	* generated/spread_r16.c: Ditto.
	* generated/spread_r17.c: Ditto.
	* generated/spread_r4.c: Ditto.
	* generated/spread_r8.c: Ditto.

2026-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/124543
	* io/inquire.c (inquire_via_unit): Change the returned
	encoding value to 'DEFAULT' when not specified in the OPEN
	statement.

2026-04-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/124543
	* io/inquire.c (inquire_via_unit): Adjust the logic to
	treat formatted vs unformatted correctly.

2026-03-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/124543
	* io/inquire.c (inquire_via_unit): Fix return value for
	NAMED. Add check for ACTION. Fix return values for
	ENCODING, PENDING, READ, WRITE, READWRITE.
	(inquire_via_filename): Add checks for ACTION, DELIM,
	ASYNCHRONOUS, and PENDING. Fix return value for
	ENCODING.
	* io/unix.c (inquire_access): Change return value from no
	to unknown.

2026-03-22  Christopher Albert  <albert@tugraz.at>

	PR fortran/124512
	* Makefile.am: Adjust the dependencies.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Add new check.

2026-03-06  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR libfortran/124371
	* caf/shmem/supervisor.c (startWorker): Use defined(HAVE_FORK)
	instead of !defined(WIN32) for preprocessor conditional.

2026-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR libfortran/124330
	* caf/shmem/shared_memory.c (shared_memory_set_env): Make buffer
	used by putenv static.
	(shared_memory_init): Likewise.

2026-03-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/124330
	* caf/shmem/shared_memory.c (shared_memory_init): Use
	putenv() for HPUX and as a fallback where setenv()
	is not available.

2026-03-03  Mark Wielaard  <mark@klomp.org>

	* config.h.in: Regenerate.
	* configure: Regenerate.

2026-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    John David Anglin  <danglin@gcc.gnu.org>

	PR fortran/124330
	* caf/shmem/shared_memory.c: Fix filenames for WIN32
	includes.
	(shared_memory_set_env): Use putenv() for HPUX and as
	a fallback where setenv () is not available.
	(NAME_MAX): Replace with SHM_NAME_MAX.
	(SHM_NAME_MAX): Use this to avoid duplicating NAME_MAX
	used elsewhere.
	* caf/shmem/supervisor.c (get_image_num_from_envvar): Add
	a fallback for HPUX. Add additional comment to explain why
	the number of cores is used in lieu of GFORTRAN_NUM_IMAGES.

2026-03-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/124286
	* acinclude.m4: Remove LIBGFOR_CHECK_SANE_BUILTIN_CLZL.
	* caf/shmem/allocator.c (next_power_of_two): Use known sane
	builtin.
	* configure: Regenerate.
	* configure.ac: Remove use of LIBGFOR_CHECK_SANE_BUILTIN_CLZL.

2026-02-27  Jakub Jelinek  <jakub@redhat.com>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2026-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/88076
	* caf/shmem/supervisor.c (supervisor_main_loop): Use fprintf
	instead of dprintf.

2026-02-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/88076
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* Makefile.am: Only build caf_shmem when pthreads is available.
	* configure.ac: Check for pthreads availability and needed
	flags.

2026-02-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/124080
	* caf/shmem/hashmap.c (hash): Use size_t instead of
	uint64.
	(hmiadd): Use size_t instead of ssize_t.
	(scan_inside_lookahead): Likewise.
	(scan_empty): Likewise.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/121429
	* caf/shmem.c (_gfortran_caf_deregister): Add a call to
	sync_team.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/124071
	* caf/shmem.c (_gfortran_caf_form_team): Take free index, when
	computed one is already taken.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/88076
	* Makefile.am: Add new library.
	* Makefile.in: Regenerated
	* acinclude.m4: Add check for reasonable clzl.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Call clzl check.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/shmem.c (_gfortran_caf_finalize): Add a sync on the
	initial team on exit.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/shmem.c (_gfortran_caf_finalize): Ensure all memory is
	freeed.
	* caf/shmem/allocator.c (allocator_shared_malloc): Just assert
	that an index is within its bounds.
	* caf/shmem/shared_memory.c (shared_memory_init): When shared
	memory can not be placed at desired address, exit the image with
	a certain code to let the supervisor restart the image.
	(shared_memory_cleanup): Only the supervisor must unlink the shm
	object.
	* caf/shmem/supervisor.c (GFORTRAN_ENV_IMAGE_RESTARTS_LIMITS):
	New environment variable.
	(get_image_restarts_limit): Get the limit on image restarts
	(accumulates over all) form the environment variable or default
	to 4000.
	(ensure_shmem_initialization): Add error handling.
	(startWorker): Start a single worker/image.
	(kill_all_images): Kill all images.
	(supervisor_main_loop): When a worker/image reports a shared
	memory issue just try to restart it.
	* caf/shmem/thread_support.c (initialize_shared_mutex): Mark
	mutex robust on plattforms that support it.
	(initialize_shared_errorcheck_mutex): Same.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/shmem.c (_gfortran_caf_init): Cleanup thread helper after
	use.
	(_gfortran_caf_finalize): Same.
	(_gfortran_caf_register): Handle lock_t correctly on Windows.
	(GEN_OP): Prevent warnings on non-initialized.
	(_gfortran_caf_lock): Handle lock_t correctly on Windows.
	(_gfortran_caf_unlock): Same.
	(_gfortran_caf_random_init): Fix formatting.
	(_gfortran_caf_form_team): Add more images to counter_barrier.
	* caf/shmem/alloc.c: Use routines from thread_support.
	* caf/shmem/allocator.c (allocator_lock): Same.
	(allocator_unlock): Same.
	* caf/shmem/allocator.h: Same.
	* caf/shmem/collective_subroutine.c (get_collsub_buf): Same.
	* caf/shmem/collective_subroutine.h: Same.
	* caf/shmem/counter_barrier.c (lock_counter_barrier): Same.
	(unlock_counter_barrier): Same.
	(counter_barrier_init): Same.
	(counter_barrier_wait): Same.
	(change_internal_barrier_count): Same.
	(counter_barrier_add): Same.
	(counter_barrier_init_add): Only increase value w/o signaling.
	(counter_barrier_get_count): Use routines from thread_support.
	* caf/shmem/counter_barrier.h: Same.
	(counter_barrier_init_add): New routine.
	* caf/shmem/shared_memory.c: Use windows routines where
	applicable.
	(shared_memory_set_env): Same.
	(shared_memory_get_master): Same.
	(shared_memory_init): Same.
	(shared_memory_cleanup): Same.
	* caf/shmem/shared_memory.h: Use types from thread_support.
	* caf/shmem/supervisor.c: Use windows routines where applicable.
	(get_memory_size_from_envvar): Same.
	(ensure_shmem_initialization): Same.
	(supervisor_main_loop): Use windows process start on windows
	without fork().
	* caf/shmem/supervisor.h: Use types from thread_support.
	* caf/shmem/sync.c (lock_table): Use routines from thread_support.
	(unlock_table): Same.
	(sync_init): Same.
	(sync_init_supervisor): Same.
	(sync_table): Same.
	(lock_event): Same.
	(unlock_event): Same.
	(event_post): Same.
	(event_wait): Same.
	* caf/shmem/sync.h: Use types from thread_support.
	* caf/shmem/teams_mgmt.c (update_teams_images): Use routines from
	thread_support.
	* caf/shmem/thread_support.c: Add synchronisation primitives for
	windows.
	(smax): Windows only: Max for size_t.
	(get_handle): Windows only: Get the windows handle for a given
	id or create a new one, if it does not exist.
	(get_mutex): Windows only: Shortcut for getting a windows mutex
	handle.
	(get_condvar): Windows only: Same, but for condition variable.
	(thread_support_init_supervisor): Windows only: Clear tracker of
	allocated handle ids.
	(caf_shmem_mutex_lock): Windows only: Implememtation of lock,
	(caf_shmem_mutex_trylock): Windows only: trylock, and
	(caf_shmem_mutex_unlock): Windows only:  unlock for Windows.
	(bm_is_set): Windows only: Check a bit is set in a mask.
	(bm_clear_bit): Windows only: Clear a bit in a mask.
	(bm_set_mask): Windows only: Set all bits in a mask.
	(bm_is_none): Windows only: Check if all bits are cleared.
	(caf_shmem_cond_wait): Windows only: Condition variable
	implemenation fro wait,
	(caf_shmem_cond_broadcast): Windows only: broadcast, and
	(caf_shmem_cond_signal): Windows only: signal on Windows.
	(caf_shmem_cond_update_count): Windows only: Need to know the
	images participating in a condition variable.
	(thread_support_cleanup): Windows only: Clean up the handles on
	exit.
	* caf/shmem/thread_support.h: Conditionally compile the types
	as required for Windows and other OSes.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/shmem/allocator.c (next_power_of_two): Use sane clzl
	implementation or alternative.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/88076
	* caf/libcaf.h (LIBCAF_H): Remove unused header inclusions.
	* caf/caf_error.c: New file.
	* caf/caf_error.h: New file.
	* caf/shmem.c: New file.
	* caf/shmem/alloc.c: New file.
	* caf/shmem/alloc.h: New file.
	* caf/shmem/allocator.c: New file.
	* caf/shmem/allocator.h: New file.
	* caf/shmem/collective_subroutine.c: New file.
	* caf/shmem/collective_subroutine.h: New file.
	* caf/shmem/counter_barrier.c: New file.
	* caf/shmem/counter_barrier.h: New file.
	* caf/shmem/hashmap.c: New file.
	* caf/shmem/hashmap.h: New file.
	* caf/shmem/shared_memory.c: New file.
	* caf/shmem/shared_memory.h: New file.
	* caf/shmem/supervisor.c: New file.
	* caf/shmem/supervisor.h: New file.
	* caf/shmem/sync.c: New file.
	* caf/shmem/sync.h: New file.
	* caf/shmem/teams_mgmt.c: New file.
	* caf/shmem/teams_mgmt.h: New file.
	* caf/shmem/thread_support.c: New file.
	* caf/shmem/thread_support.h: New file.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/libcaf.h (_gfortran_caf_failed_images): Team attribute is
	used now in some libs.
	(_gfortran_caf_image_status): Same.
	(_gfortran_caf_stopped_images): Same.
	* caf/single.c (caf_internal_error): Use correct printf function
	to handle va_list.

2026-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/123012
	* io/list_read.c (read_character): Add new check after
	get_string and provide better comments.

2026-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/123012
	* io/list_read.c (read_character): Add new check when no
	quate is provided and the character string is digits only.

2026-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* io/io.h: Change type of self to intptr_t.
	* io/async.h (LOCK_UNIT): Cast __gthread_self () to intptr_t.
	(TRYLOCK_UNIT): Likewise.
	(OWN_THREAD_ID): Likewise.

2026-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* io/async.h: DEBUG_ASYNC needs gtreads support.
	(LOCK_UNIT): Only lock when there is pthreads support and it is active.
	Otherwise, just set unit->self to 1.
	(UNLOCK_UNIT): Only unlock when there is pthreads support and it is active.
	Otherwise, just set unit->self to 0.
	(TRYLOCK_UNIT): Only try locking when thee is pthreads support and it is
	active.  Otherwise, return unit->self.
	(OWN_THREAD_ID): New macro.
	* io/io.h: gfc_unit's self is an int when there is no gthreads support.
	* io/unit.c (check_for_recursive): Check for equality of unit which
	locked to OWN_THREAD_ID.

2026-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* io/async.h (UNLOCK_UNIT): New macro.
	(TRYLOCK_UNIT): New macro.
	(LOCK_UNIT): New macro.
	* io/io.h: Delete prototype for unused stash_internal_unit.
	(check_for_recursive): Add prototype for this new function.
	* io/transfer.c (data_transfer_init): Add call to new
	check_for_recursive.
	* io/unit.c (delete_unit): Fix comment.
	(check_for_recursive): Add new function.
	(init_units): Use new macros.
	(close_unit_1): Likewise.
	(unlock_unit): Likewise.
	* io/unix.c (flush_all_units_1): Likewise.
	(flush_all_units): Likewise.
	* runtime/error.c (translate_error): : Add translation for
	"Recursive I/O not allowed runtime error message.

2026-01-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Revert:
	2026-01-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/119136
	* io/io.h: Delete prototype for unused stash_internal_unit.
	(check_for_recursive): Add prototype for this new function.
	* io/transfer.c (data_transfer_init): Add call to new
	check_for_recursive.
	* io/unit.c (delete_unit): Fix comment.
	(check_for_recursive): Add new function.
	* runtime/error.c (translate_error): Add translation for
	"Recursive I/O not allowed runtime error message.

2026-01-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/119136
	* io/io.h: Delete prototype for unused stash_internal_unit.
	(check_for_recursive): Add prototype for this new function.
	* io/transfer.c (data_transfer_init): Add call to new
	check_for_recursive.
	* io/unit.c (delete_unit): Fix comment.
	(check_for_recursive): Add new function.
	* runtime/error.c (translate_error): Add translation for
	"Recursive I/O not allowed runtime error message.


Copyright (C) 2026 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
