@@ -21,13 +21,13 @@ module test_linalg_pseudoinverse
21
21
allocate(tests(0))
22
22
23
23
#: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))
25
25
#:endfor
26
26
#: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))
31
31
#:endfor
32
32
33
33
end subroutine test_pseudoinverse_matrix
@@ -218,6 +218,27 @@ module test_linalg_pseudoinverse
218
218
219
219
#:endfor
220
220
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
+
221
242
end module test_linalg_pseudoinverse
222
243
223
244
program test_inv
0 commit comments