File tree Expand file tree Collapse file tree 4 files changed +38
-4
lines changed Expand file tree Collapse file tree 4 files changed +38
-4
lines changed Original file line number Diff line number Diff line change @@ -302,12 +302,21 @@ contains
302
302
303
303
last = len(string)
304
304
nsub = len(substring)
305
- if (nsub > 0 ) then
306
- do while (string (last- nsub+1 :last) == substring)
307
- last = last - nsub
305
+ if (nsub > 0 .and. nsub <= last) then
306
+ do while(last >= nsub)
307
+ if (string(last-nsub+1:last) == substring) then
308
+ last = last - nsub
309
+ else
310
+ exit
311
+ end if
308
312
end do
309
313
end if
310
- chomped_string = string (1 :last)
314
+
315
+ if (last <= 0) then
316
+ chomped_string = ''
317
+ else
318
+ chomped_string = string(1:last)
319
+ end if
311
320
312
321
end function chomp_substring_char_char
313
322
Original file line number Diff line number Diff line change @@ -2,6 +2,14 @@ if (NOT TARGET "test-drive::test-drive")
2
2
find_package ("test-drive" REQUIRED )
3
3
endif ()
4
4
5
+ if (WIN32 )
6
+ if (CMAKE_Fortran_COMPILER_ID MATCHES "^Intel" )
7
+ add_link_options (/Qoption,link,/STACK:8388608 )
8
+ elseif (CMAKE_Fortran_COMPILER_ID STREQUAL GNU )
9
+ add_link_options (-Wl,--stack,8388608 )
10
+ endif ()
11
+ endif ()
12
+
5
13
macro (ADDTEST name )
6
14
add_executable (test_${name} test_${name}.f90 )
7
15
target_link_libraries (test_${name} "${PROJECT_NAME} " "test-drive::test-drive" )
Original file line number Diff line number Diff line change @@ -23,6 +23,21 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^Intel")
23
23
set (CMAKE_CXX_EXTENSIONS OFF )
24
24
25
25
set_target_properties (test_hash_functions PROPERTIES LINKER_LANGUAGE Fortran )
26
+
27
+ if (WIN32 )
28
+ set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL$<$<CONFIG:Debug>:Debug>" )
29
+ target_compile_options (
30
+ test_hash_functions
31
+ PRIVATE
32
+ $< $< COMPILE_LANGUAGE:Fortran> :/libs:dll> )
33
+ if (CMAKE_BUILD_TYPE STREQUAL "Debug" OR "RelWithDebInfo" )
34
+ target_link_options (test_hash_functions
35
+ PRIVATE
36
+ /Qoption,link,/NODEFAULTLIB:libcmt
37
+ /Qoption,link,/NODEFAULTLIB:msvcrt.lib
38
+ /Qoption,link,/NODEFAULTLIB:libifcoremt.lib )
39
+ endif ()
40
+ endif ()
26
41
endif ()
27
42
28
43
if (CMAKE_Fortran_COMPILER_ID STREQUAL GNU AND CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10.0 )
Original file line number Diff line number Diff line change @@ -151,6 +151,8 @@ subroutine test_chomp_substring_char(error)
151
151
call check(error, chomp(" hellooooo" , " oo" ) == " hello" )
152
152
if (allocated (error)) return
153
153
call check(error, chomp(" hellooooo" , substring= " oo" ) == " hello" )
154
+ if (allocated (error)) return
155
+ call check(error, chomp(" helhel" , substring= " hel" ) == " " )
154
156
end subroutine test_chomp_substring_char
155
157
156
158
subroutine test_chomp_substring_string (error )
You can’t perform that action at this time.
0 commit comments