https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80361

--- Comment #11 from Jürgen Reuter <juergen.reuter at desy dot de> ---
(In reply to Dominique d'Humieres from comment #10)
> If I remove the final stuff in unit_tests.f90, 
> 
> --- unit_tests_orig.f90       2017-04-08 16:16:57.000000000 +0200
> +++ unit_tests.f90    2017-04-08 16:17:20.000000000 +0200
> @@ -72,7 +72,6 @@ module unit_tests
>       procedure, private :: add => test_results_add
>       procedure, private :: write => test_results_write
>       procedure, private :: report => test_results_report
> -     procedure, private :: final => test_results_final
>       procedure :: wrapup => test_results_wrapup
>    end type test_results_t
>  
> @@ -144,26 +143,12 @@ contains
>      success = list%n_failure == 0
>    end subroutine test_results_report
>  
> -  subroutine test_results_final (list)
> -    class(test_results_t), intent(inout) :: list
> -    type(test_result_t), pointer :: result
> -    do while (associated (list%first))
> -       result => list%first
> -       list%first => result%next
> -       deallocate (result)
> -    end do
> -    list%last => null ()
> -    list%n_success = 0
> -    list%n_failure = 0
> -  end subroutine test_results_final
> -
>    subroutine test_results_wrapup (list, u, success)
>      class(test_results_t), intent(inout) :: list
>      integer, intent(in) :: u
>      logical, intent(out), optional :: success
>      call list%write (u)
>      if (present (success))  call list%report (success)
> -    call list%final ()
>    end subroutine test_results_wrapup
>  
>    subroutine test (test_proc, name, description, u_log, results)
> 
> I still get with a clean make
> 
> Fortran runtime error: Recursive call to nonrecursive procedure
> '__final_particle_specifiers_Prt_spec_list_t'
> 
> This seems buggy unless I am missing something(?).

I believe that the __final_particle_specifiers_Prt_spec_list_t is none of our
finalisers, but probably one automatic finaliser from the compiler.

Reply via email to