Skip to content

Commit f83a793

Browse files
committed
linalg-pinv: gcc-15 test fix
1 parent 1f09e9e commit f83a793

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

test/linalg/test_linalg_pseudoinverse.fypp

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
221242
end module test_linalg_pseudoinverse
222243

223244
program test_inv

0 commit comments

Comments
 (0)