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

--- Comment #10 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
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(?).

Reply via email to