@@ -21,17 +21,17 @@ module test_linalg_eigenvalues
2121 allocate(tests(0))
2222
2323 #:for rk,rt,ri in REAL_KINDS_TYPES
24- tests = [ tests,new_unittest("test_eig_real_${ri}$",test_eig_real_${ri}$), &
25- new_unittest("test_eigvals_identity_${ri}$",test_eigvals_identity_${ri}$), &
26- new_unittest("test_eigvals_diagonal_B_${ri}$",test_eigvals_diagonal_B_${ri}$), &
27- new_unittest("test_eigvals_nondiagonal_B_${ri}$",test_eigvals_nondiagonal_B_${ri}$), &
28- new_unittest("test_eigh_real_${ri}$",test_eigh_real_${ri}$)]
24+ call add_test( tests,new_unittest("test_eig_real_${ri}$",test_eig_real_${ri}$))
25+ call add_test(tests, new_unittest("test_eigvals_identity_${ri}$",test_eigvals_identity_${ri}$))
26+ call add_test(tests, new_unittest("test_eigvals_diagonal_B_${ri}$",test_eigvals_diagonal_B_${ri}$))
27+ call add_test(tests, new_unittest("test_eigvals_nondiagonal_B_${ri}$",test_eigvals_nondiagonal_B_${ri}$))
28+ call add_test(tests, new_unittest("test_eigh_real_${ri}$",test_eigh_real_${ri}$))
2929 #: endfor
3030
3131 #:for ck,ct,ci in CMPLX_KINDS_TYPES
32- tests = [ tests,new_unittest("test_eig_complex_${ci}$",test_eig_complex_${ci}$), &
33- new_unittest("test_eig_generalized_complex_${ci}$",test_eigvals_generalized_complex_${ci}$), &
34- new_unittest("test_eig_issue_927_${ci}$",test_issue_927_${ci}$)]
32+ call add_test( tests,new_unittest("test_eig_complex_${ci}$",test_eig_complex_${ci}$))
33+ call add_test(tests, new_unittest("test_eig_generalized_complex_${ci}$",test_eigvals_generalized_complex_${ci}$))
34+ call add_test(tests, new_unittest("test_eig_issue_927_${ci}$",test_issue_927_${ci}$))
3535 #: endfor
3636
3737 end subroutine test_eig_eigh
@@ -347,8 +347,26 @@ module test_linalg_eigenvalues
347347
348348 #:endfor
349349
350-
351-
350+ ! gcc-15 bugfix utility
351+ subroutine add_test(tests,new_test)
352+ type(unittest_type), allocatable, intent(inout) :: tests(:)
353+ type(unittest_type), intent(in) :: new_test
354+
355+ integer :: n
356+ type(unittest_type), allocatable :: new_tests(:)
357+
358+ if (allocated(tests)) then
359+ n = size(tests)
360+ else
361+ n = 0
362+ end if
363+
364+ allocate(new_tests(n+1))
365+ if (n>0) new_tests(1:n) = tests(1:n)
366+ new_tests(1+n) = new_test
367+ call move_alloc(from=new_tests,to=tests)
368+
369+ end subroutine add_test
352370
353371end module test_linalg_eigenvalues
354372
0 commit comments