Skip to content

Commit fd565cc

Browse files
committed
linalg-svd: gcc-15 test fix
1 parent 3a53c6b commit fd565cc

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

test/linalg/test_linalg_svd.fypp

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ module test_linalg_svd
2020
allocate(tests(0))
2121

2222
#:for rk,rt,ri in REAL_KINDS_TYPES
23-
tests = [tests,new_unittest("test_svd_${ri}$",test_svd_${ri}$)]
23+
call add_test(tests,new_unittest("test_svd_${ri}$",test_svd_${ri}$))
2424
#:endfor
2525

2626
#:for ck,ct,ci in CMPLX_KINDS_TYPES
27-
tests = [tests,new_unittest("test_complex_svd_${ci}$",test_complex_svd_${ci}$)]
27+
call add_test(tests,new_unittest("test_complex_svd_${ci}$",test_complex_svd_${ci}$))
2828
#:endfor
2929

3030
#:for rk,rt,ri in RC_KINDS_TYPES
31-
tests = [tests,new_unittest("test_svd_row_${ri}$",test_svd_row_${ri}$)]
31+
call add_test(tests,new_unittest("test_svd_row_${ri}$",test_svd_row_${ri}$))
3232
#:endfor
3333

3434
end subroutine test_svd
@@ -264,6 +264,26 @@ module test_linalg_svd
264264

265265
#:endfor
266266

267+
! gcc-15 bugfix utility
268+
pure subroutine add_test(tests,new_test)
269+
type(unittest_type), allocatable, intent(inout) :: tests(:)
270+
type(unittest_type), intent(in) :: new_test
271+
272+
integer :: n
273+
type(unittest_type), allocatable :: new_tests(:)
274+
275+
if (allocated(tests)) then
276+
n = size(tests)
277+
else
278+
n = 0
279+
end if
280+
281+
allocate(new_tests(n+1))
282+
if (n>0) new_tests(1:n) = tests(1:n)
283+
new_tests(1+n) = new_test
284+
call move_alloc(from=new_tests,to=tests)
285+
286+
end subroutine add_test
267287

268288
end module test_linalg_svd
269289

0 commit comments

Comments
 (0)