Commit 43076492 by Janus Weil

re PR fortran/80361 ([OOP] bogus recursive call to nonrecursive procedure with -fcheck=recursion)

2017-04-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80361
	* class.c (generate_finalization_wrapper): Give the finalization wrapper
	the recursive attribute.

2017-04-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80361
	* gfortran.dg/class_62.f90: New test case.

From-SVN: r246934
parent dd3d6a42
2017-04-14 Janus Weil <janus@gcc.gnu.org>
PR fortran/80361
* class.c (generate_finalization_wrapper): Give the finalization wrapper
the recursive attribute.
2017-04-10 Nicolas Koenig <koenigni@student.ethz.ch>
Paul Thomas <pault@gcc.gnu.org>
......
......@@ -1613,6 +1613,7 @@ generate_finalization_wrapper (gfc_symbol *derived, gfc_namespace *ns,
final->attr.flavor = FL_PROCEDURE;
final->attr.function = 1;
final->attr.pure = 0;
final->attr.recursive = 1;
final->result = final;
final->ts.type = BT_INTEGER;
final->ts.kind = 4;
......
2017-04-14 Janus Weil <janus@gcc.gnu.org>
PR fortran/80361
* gfortran.dg/class_62.f90: New test case.
2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
* gcc.target/arc/loop-1.c: New file.
......
! { dg-do run }
! { dg-options "-fcheck=recursion" }
!
! PR 80361: [5/6/7 Regression] bogus recursive call to nonrecursive procedure with -fcheck=recursion
!
! Contributed by Jürgen Reuter <juergen.reuter@desy.de>
program main_ut
implicit none
type :: prt_spec_expr_t
end type
type :: prt_expr_t
class(prt_spec_expr_t), allocatable :: x
end type
type, extends (prt_spec_expr_t) :: prt_spec_list_t
type(prt_expr_t) :: e
end type
class(prt_spec_list_t), allocatable :: y
allocate (y)
allocate (prt_spec_list_t :: y%e%x)
deallocate(y)
end program
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment