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
This commit is contained in:
parent
dd3d6a42fc
commit
4307649214
|
@ -1,3 +1,8 @@
|
|||
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;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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.
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
! { 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
|
Loading…
Reference in New Issue