Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8c5cb8d

Browse files
committed
append_prepend: gcc-15 array constructor fix
1 parent 0228a3e commit 8c5cb8d

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed

‎test/stringlist/test_append_prepend.f90

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ subroutine test_append_prepend_string
1616
integer, parameter :: first = -100
1717
integer, parameter :: last = 100
1818
character(len=:), allocatable :: string
19+
type(string_type) :: all_strings(first:last)
20+
21+
do concurrent (i=first:last)
22+
all_strings(i) = string_type( to_string(i) )
23+
end do
1924

2025
do i = first, last
2126
string = to_string(i)
@@ -26,10 +31,10 @@ subroutine test_append_prepend_string
2631
end do
2732

2833
call compare_list( work_list, first, last + 1, 1 )
29-
call check( work_list == [ ( string_type( to_string(i) ), i = first, last ) ], &
34+
call check( work_list == all_strings, &
3035
& "test_append_prepend_string: work_list ==&
3136
& [ ( string_type( to_string(i) ), i = first, last ) ]" )
32-
call check( [ ( string_type( to_string(i) ), i = first, last ) ] == work_list, &
37+
call check( all_strings == work_list, &
3338
& "test_append_prepend_string: [ ( string_type( to_string(i) ),&
3439
& i = first, last ) ] == work_list" )
3540

@@ -47,9 +52,9 @@ subroutine test_append_prepend_string
4752
end do
4853

4954
call compare_list( reference_list, first, last + 1, 2 )
50-
call check( reference_list == [ ( string_type( to_string(i) ), i = first, last ) ], "test_append_prepend_string:&
55+
call check( reference_list == all_strings, "test_append_prepend_string:&
5156
& reference_list == [ ( string_type( to_string(i) ), i = first, last ) ]" )
52-
call check( [ ( string_type( to_string(i) ), i = first, last ) ] == reference_list, &
57+
call check( all_strings == reference_list, &
5358
& "test_append_prepend_string: [ ( string_type( to_string(i) ), i = first, last ) ] == reference_list" )
5459

5560
call check( work_list == reference_list, "test_append_prepend_string:&
@@ -66,10 +71,15 @@ subroutine test_append_prepend_array
6671
integer, parameter :: first = -100
6772
integer, parameter :: last = 100
6873
integer, parameter :: stride = 10
74+
type(string_type) :: all_strings(first:last)
75+
76+
do concurrent (j=first:last)
77+
all_strings(j) = string_type( to_string(j) )
78+
end do
6979

7080
do i = first, last - 1, stride
71-
work_list = work_list // [ ( string_type( to_string(j) ), j = i, i +stride-1) ]
72-
call check( work_list == [ ( string_type( to_string(j) ), j =first, i +stride-1) ], &
81+
work_list = work_list // all_strings(i:i+stride-1)
82+
call check( work_list == all_strings(first:i+stride-1), &
7383
& "test_append_prepend_array: work_list ==&
7484
& [ ( string_type( to_string(j) ), j = first, i + stride - 1) ]" )
7585

@@ -78,10 +88,10 @@ subroutine test_append_prepend_array
7888
work_list = work_list // to_string(last)
7989

8090
call compare_list( work_list, first, last + 1, 3 )
81-
call check( work_list == [ ( string_type( to_string(i) ), i = first, last) ], &
91+
call check( work_list == all_strings, &
8292
& "test_append_prepend_array: work_list ==&
8393
& [ ( string_type( to_string(i) ), i = first, last) ]" )
84-
call check( [ ( string_type( to_string(i) ), i = first, last) ] == work_list, &
94+
call check( all_strings == work_list, &
8595
& "test_append_prepend_array: [ ( string_type( to_string(i) ), i = first, last) ]&
8696
& == work_list" )
8797

@@ -91,8 +101,7 @@ subroutine test_append_prepend_array
91101
call check( reference_list /= work_list, "test_append_prepend_array:&
92102
& reference_list /= work_list" )
93103

94-
reference_list = [ ( string_type( to_string(j) ), j = i - stride + 1, i ) ] &
95-
& // reference_list
104+
reference_list = all_strings(i-stride+1:i) // reference_list
96105
call check( reference_list == &
97106
& [ ( string_type( to_string(j) ), j = i - stride + 1, last ) ], &
98107
& "test_append_prepend_array: reference_list ==&
@@ -103,10 +112,10 @@ subroutine test_append_prepend_array
103112
reference_list = to_string(first) // reference_list
104113

105114
call compare_list( reference_list, first, last + 1, 4 )
106-
call check( [ ( string_type( to_string(i) ), i = first, last) ] == reference_list, &
115+
call check( all_strings == reference_list, &
107116
& "test_append_prepend_array:&
108117
& [ ( string_type( to_string(i) ), i = first, last) ] == reference_list" )
109-
call check( [ ( string_type( to_string(i) ), i = first, last) ] == reference_list, &
118+
call check( all_strings == reference_list, &
110119
& "test_append_prepend_array: [ ( string_type( to_string(i) ), i = first, last) ]&
111120
& == reference_list" )
112121

@@ -124,6 +133,11 @@ subroutine test_append_prepend_list
124133
integer, parameter :: first = -100
125134
integer, parameter :: last = 100
126135
integer, parameter :: stride = 10
136+
type(string_type) :: all_strings(first:last)
137+
138+
do concurrent (j=first:last)
139+
all_strings(j) = string_type( to_string(j) )
140+
end do
127141

128142
do i = first, last - 1, stride
129143
call temp_list%clear()
@@ -132,7 +146,7 @@ subroutine test_append_prepend_list
132146
end do
133147
work_list = work_list // temp_list
134148

135-
call check( work_list == [ ( string_type( to_string(j) ), j =first, i +stride-1 ) ], &
149+
call check( work_list == all_strings(first:i+stride-1), &
136150
& "test_append_prepend_list: work_list ==&
137151
& [ ( to_string(j), j = first, i + stride - 1) ]" )
138152

@@ -141,9 +155,9 @@ subroutine test_append_prepend_list
141155
work_list = work_list // to_string(last)
142156

143157
call compare_list( work_list, first, last + 1, 5 )
144-
call check( work_list == [ ( string_type( to_string(i) ), i = first, last) ], "test_append_prepend_list:&
158+
call check( work_list == all_strings, "test_append_prepend_list:&
145159
& work_list == [ ( string_type( to_string(i) ), i = first, last) ]" )
146-
call check( [ ( string_type( to_string(i) ), i = first, last) ] == work_list, &
160+
call check( all_strings == work_list, &
147161
& "test_append_prepend_list: [ ( string_type( to_string(i) ), i = first, last) ]&
148162
& == work_list" )
149163

@@ -160,7 +174,7 @@ subroutine test_append_prepend_list
160174
reference_list = temp_list // reference_list
161175

162176
call check( reference_list == &
163-
& [ ( string_type( to_string(j) ), j = i -stride+1, last ) ], &
177+
& all_strings(i-stride+1:last), &
164178
& "test_append_prepend_list: reference_list ==&
165179
& [ ( string_type( to_string(j) ), j = i - stride + 1, last ) ]" )
166180

@@ -169,10 +183,10 @@ subroutine test_append_prepend_list
169183
reference_list = to_string(first) // reference_list
170184

171185
call compare_list( reference_list, first, last + 1, 6 )
172-
call check( [ ( string_type( to_string(i) ), i = first, last) ] == reference_list, &
186+
call check( all_strings == reference_list, &
173187
& "test_append_prepend_list:&
174188
& [ ( string_type( to_string(i) ), i = first, last) ] == reference_list" )
175-
call check( [ ( string_type( to_string(i) ), i = first, last) ] == reference_list, &
189+
call check( all_strings == reference_list, &
176190
& "test_append_prepend_list: [ ( string_type( to_string(i) ), i = first, last) ]&
177191
& == reference_list" )
178192

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /