[Bug fortran/102333] [9/10/11/12 Regression] ICE in gfc_generate_function_code, at fortran/trans-decl.c:6941 since r7-4526-gd809e15a19e63493

2021-09-15 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102333

Martin Liška  changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org,
   ||marxin at gcc dot gnu.org
Summary|[9/10/11/12 Regression] ICE |[9/10/11/12 Regression] ICE
   |in  |in
   |gfc_generate_function_code, |gfc_generate_function_code,
   |at  |at
   |fortran/trans-decl.c:6941   |fortran/trans-decl.c:6941
   ||since
   ||r7-4526-gd809e15a19e63493

--- Comment #3 from Martin Liška  ---
Started with r7-4526-gd809e15a19e63493.

[Bug fortran/102333] [9/10/11/12 Regression] ICE in gfc_generate_function_code, at fortran/trans-decl.c:6941

2021-09-15 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102333

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P4
   Target Milestone|--- |9.5

[Bug fortran/102333] [9/10/11/12 Regression] ICE in gfc_generate_function_code, at fortran/trans-decl.c:6941

2021-09-14 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102333

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Keywords||accepts-invalid,
   ||ice-on-valid-code
   Last reconfirmed||2021-09-14
 CC||anlauf at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #2 from anlauf at gcc dot gnu.org ---
The result clause is not needed.  We even ICE on:

function f(x)
  class(*), pointer :: f
contains
  function g()
procedure(f), pointer :: g
  end
end

or

function f(x)
  class(*), allocatable :: f
contains
  function g()
procedure(f), pointer :: g
  end
end

Note however that the code in comment#1 is invalid and should be rejected.

[Bug fortran/102333] [9/10/11/12 Regression] ICE in gfc_generate_function_code, at fortran/trans-decl.c:6941

2021-09-14 Thread gscfq--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102333

--- Comment #1 from G. Steinmetz  ---

Compiles with "allocatable" instead :


$ cat z2.f90
function f(x) result(y)
   class(*), allocatable :: y
contains
   function g() result(z)
  procedure(f), allocatable :: z
   end
end