Skip to content

Commit 3a53c6b

Browse files
committed
linalg-solve: gcc-15 test fix
1 parent 7a9b191 commit 3a53c6b

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

test/linalg/test_linalg_solve.fypp

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

156177
program test_solve

0 commit comments

Comments
 (0)