[Bug fortran/121185] [16 Regression] regression on elemental operation of division
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 31 13:35:03 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121185
--- Comment #46 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Mikael Morin <mikael@gcc.gnu.org>:
https://gcc.gnu.org/g:1c795ee4bc6b08f16cf1ad43acac47dc7c4b6b94
commit r16-8359-g1c795ee4bc6b08f16cf1ad43acac47dc7c4b6b94
Author: Mikael Morin <mikael@gcc.gnu.org>
Date: Tue Mar 31 15:34:29 2026 +0200
fortran: Give up reference factoring in case of shared tree [PR124661]
When we are about to create a variable to factor a subreference of an
array descriptor, check whether that subreference is shared with some of
the preliminary code and abort the factoring in that case.
In the example from the PR, the preliminary code contained bounds
checking code and the replacement of the subreferences by fresh
variables was causing those variables to be used before they were
defined in that bounds checking code.
PR fortran/121185
PR fortran/124661
gcc/fortran/ChangeLog:
* trans-array.cc (maybe_save_ref): New wrapper function around
save ref.
(set_factored_descriptor_value): Use the new wrapper function.
Add argument PRELIMINARY_CODE.
(gfc_conv_ss_descriptor): Update caller.
gcc/ChangeLog:
* tree-inline.cc (debug_find_tree, debug_find_tree_1): Move
and rename functions...
* tree.cc (find_tree, find_tree_1): ... here.
* tree-inline.h (debug_find_tree): Move renamed declaration...
* tree.h (find_tree): ... here.
gcc/testsuite/ChangeLog:
* gfortran.dg/bounds_check_28.f90: New test.
Co-authored-by: Christopher Albert <albert@tugraz.at>
More information about the Gcc-bugs
mailing list