[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #3 from Richard Biener --- Thanks.
[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 --- Comment #2 from CVS Commits --- The master branch has been updated by Mikael Morin : https://gcc.gnu.org/g:3e0c9fdfd00b5b5cbff1a0bd6ac012a10fe81348 commit r12-8280-g3e0c9fdfd00b5b5cbff1a0bd6ac012a10fe81348 Author: Mikael Morin Date: Wed Apr 27 11:36:00 2022 +0200 fortran: Avoid infinite self-recursion [PR105381] Dummy array decls are local decls different from the argument decl accessible through GFC_DECL_SAVED_DESCRIPTOR. If the argument decl has a DECL_LANG_SPECIFIC set, it is copied over to the local decl at the time the latter is created, so that the DECL_LANG_SPECIFIC object is shared between local dummy decl and argument decl, and thus the GFC_DECL_SAVED_DESCRIPTOR of the argument decl is the argument decl itself. The r12-8230-g7964ab6c364c410c34efe7ca2eba797d36525349 change introduced the non_negative_strides_array_p predicate which recurses through GFC_DECL_SAVED_DESCRIPTOR to avoid seeing dummy decls as purely local decls. As the GFC_DECL_SAVED_DESCRIPTOR of the argument decl is itself, this can cause infinite recursion. This change adds a check to avoid infinite recursion. PR fortran/102043 PR fortran/105381 gcc/fortran/ChangeLog: * trans-array.cc (non_negative_strides_array_p): Inline variable orig_decl and merge nested if conditions. Add condition to not recurse if the next argument is the same as the current. gcc/testsuite/ChangeLog: * gfortran.dg/character_array_dummy_1.f90: New test.
[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 Mikael Morin changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mikael at gcc dot gnu.org
[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 --- Comment #1 from Mikael Morin --- Draft patch. diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index e4b6270ccf8..e0070aa080d 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -3698,7 +3698,8 @@ non_negative_strides_array_p (tree expr) if (DECL_P (expr) && DECL_LANG_SPECIFIC (expr)) if (tree orig_decl = GFC_DECL_SAVED_DESCRIPTOR (expr)) - return non_negative_strides_array_p (orig_decl); + if (orig_decl != expr) + return non_negative_strides_array_p (orig_decl); return true; }
[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 Martin Liška changed: What|Removed |Added Last reconfirmed||2022-04-25 CC||marxin at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
[Bug fortran/105381] [12 Regression] Memory-hog since r12-8230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381 anlauf at gcc dot gnu.org changed: What|Removed |Added Keywords||compile-time-hog Target Milestone|--- |12.0 CC||mikael at gcc dot gnu.org