@@ -21,13 +21,13 @@ module test_linalg_pseudoinverse
2121 allocate(tests(0))
2222
2323 #:for rk,rt,ri in REAL_KINDS_TYPES
24- tests = [ tests,new_unittest("${ri}$_eye_pseudoinverse",test_${ri}$_eye_pseudoinverse)]
24+ call add_test( tests,new_unittest("${ri}$_eye_pseudoinverse",test_${ri}$_eye_pseudoinverse))
2525 #:endfor
2626 #:for rk,rt,ri in RC_KINDS_TYPES
27- tests = [ tests,new_unittest("${ri}$_square_pseudoinverse",test_${ri}$_square_pseudoinverse), &
28- new_unittest("${ri}$_tall_pseudoinverse",test_${ri}$_tall_pseudoinverse), &
29- new_unittest("${ri}$_wide_pseudoinverse",test_${ri}$_wide_pseudoinverse), &
30- new_unittest("${ri}$_singular_pseudoinverse",test_${ri}$_singular_pseudoinverse)]
27+ call add_test( tests,new_unittest("${ri}$_square_pseudoinverse",test_${ri}$_square_pseudoinverse))
28+ call add_test(tests, new_unittest("${ri}$_tall_pseudoinverse",test_${ri}$_tall_pseudoinverse))
29+ call add_test(tests, new_unittest("${ri}$_wide_pseudoinverse",test_${ri}$_wide_pseudoinverse))
30+ call add_test(tests, new_unittest("${ri}$_singular_pseudoinverse",test_${ri}$_singular_pseudoinverse))
3131 #:endfor
3232
3333 end subroutine test_pseudoinverse_matrix
@@ -218,6 +218,27 @@ module test_linalg_pseudoinverse
218218
219219 #:endfor
220220
221+ ! gcc-15 bugfix utility
222+ pure subroutine add_test(tests,new_test)
223+ type(unittest_type), allocatable, intent(inout) :: tests(:)
224+ type(unittest_type), intent(in) :: new_test
225+
226+ integer :: n
227+ type(unittest_type), allocatable :: new_tests(:)
228+
229+ if (allocated(tests)) then
230+ n = size(tests)
231+ else
232+ n = 0
233+ end if
234+
235+ allocate(new_tests(n+1))
236+ if (n>0) new_tests(1:n) = tests(1:n)
237+ new_tests(1+n) = new_test
238+ call move_alloc(from=new_tests,to=tests)
239+
240+ end subroutine add_test
241+
221242end module test_linalg_pseudoinverse
222243
223244program test_inv
0 commit comments