@@ -22,13 +22,13 @@ module test_linalg_solve
2222 allocate(tests(0))
2323
2424 #:for rk,rt,ri in REAL_KINDS_TYPES
25- tests = [ tests,new_unittest("solve_${ri}$",test_${ri}$_solve), &
26- new_unittest("solve_${ri}$_multiple",test_${ri}$_solve_multiple)]
25+ call add_test( tests,new_unittest("solve_${ri}$",test_${ri}$_solve))
26+ call add_test(tests, new_unittest("solve_${ri}$_multiple",test_${ri}$_solve_multiple))
2727 #:endfor
2828
2929 #:for ck,ct,ci in CMPLX_KINDS_TYPES
30- tests = [ tests,new_unittest("solve_complex_${ci}$",test_${ci}$_solve), &
31- new_unittest("solve_2x2_complex_${ci}$",test_2x2_${ci}$_solve)]
30+ call add_test( tests,new_unittest("solve_complex_${ci}$",test_${ci}$_solve))
31+ call add_test(tests, new_unittest("solve_2x2_complex_${ci}$",test_2x2_${ci}$_solve))
3232 #:endfor
3333
3434 end subroutine test_linear_systems
@@ -150,7 +150,28 @@ module test_linalg_solve
150150
151151 end subroutine test_2x2_${ri}$_solve
152152 #:endfor
153-
153+
154+ ! gcc-15 bugfix utility
155+ pure subroutine add_test(tests,new_test)
156+ type(unittest_type), allocatable, intent(inout) :: tests(:)
157+ type(unittest_type), intent(in) :: new_test
158+
159+ integer :: n
160+ type(unittest_type), allocatable :: new_tests(:)
161+
162+ if (allocated(tests)) then
163+ n = size(tests)
164+ else
165+ n = 0
166+ end if
167+
168+ allocate(new_tests(n+1))
169+ if (n>0) new_tests(1:n) = tests(1:n)
170+ new_tests(1+n) = new_test
171+ call move_alloc(from=new_tests,to=tests)
172+
173+ end subroutine add_test
174+
154175end module test_linalg_solve
155176
156177program test_solve
0 commit comments