Closed
Description
Description
If Fortran stdlib build with GCC 13.2 when on running test the string_intrinsic
test fail with error (debug mode):
38/52 Test: string_intrinsic
Command: "/var/tmp/portage/dev-libs/fortran-stdlib-0.2.1-r1/work/stdlib-0.2.1_build/src/tests/string/test_string_intrinsic" "/var/tmp/portage/dev-libs/fortran-stdlib-0.2.1-r1/work/stdlib-0.2.1_build/src/tests/string"
Directory: /var/tmp/portage/dev-libs/fortran-stdlib-0.2.1-r1/work/stdlib-0.2.1/src/tests/string
"string_intrinsic" start time: Jul 23 19:27 MSK
Output:
----------------------------------------------------------
# Testing: string-intrinsic
Starting lgt ... (1/17)
... lgt [PASSED]
Starting llt ... (2/17)
... llt [PASSED]
Starting lge ... (3/17)
... lge [PASSED]
Starting lle ... (4/17)
... lle [PASSED]
Starting trim ... (5/17)
... trim [PASSED]
Starting len ... (6/17)
... len [PASSED]
Starting len_trim ... (7/17)
... len_trim [PASSED]
Starting adjustl ... (8/17)
... adjustl [PASSED]
Starting adjustr ... (9/17)
... adjustr [PASSED]
Starting scan ... (10/17)
... scan [PASSED]
Starting verify ... (11/17)
... verify [PASSED]
Starting repeat ... (12/17)
... repeat [PASSED]
Starting index ... (13/17)
... index [PASSED]
Starting char ... (14/17)
... char [PASSED]
Starting ichar ... (15/17)
... ichar [PASSED]
Starting iachar ... (16/17)
... iachar [PASSED]
Starting move ... (17/17)
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x7fe30b93f8e8 in ???
#1 0x7fe30b93ea3d in ???
#2 0x7fe30b67b98f in ???
#3 0x7fe30b6e24fd in ???
#4 0x7fe30bbe85df in make_output
at /var/tmp/portage/dev-util/fortran-test-drive-0.4.0/work/test-drive-0.4.0/src/testdrive.F90:459
#5 0x7fe30bbe85df in run_unittest
at /var/tmp/portage/dev-util/fortran-test-drive-0.4.0/work/test-drive-0.4.0/src/testdrive.F90:424
#6 0x7fe30bbef984 in __testdrive_MOD_run_testsuite
at /var/tmp/portage/dev-util/fortran-test-drive-0.4.0/work/test-drive-0.4.0/src/testdrive.F90:336
#7 0x561ec26e6d70 in tester
at /var/tmp/portage/dev-libs/fortran-stdlib-0.2.1-r1/work/stdlib-0.2.1/src/tests/string/test_string_intrinsic.f90:745
#8 0x561ec26e445e in main
at /var/tmp/portage/dev-libs/fortran-stdlib-0.2.1-r1/work/stdlib-0.2.1/src/tests/string/test_string_intrinsic.f90:730
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Failed.
Actually it could be related to
stdlib/test/string/test_string_intrinsic.f90
Line 716 in df1e2f0
program test
character(len=:), allocatable :: output
character(len=:), allocatable :: input
input = "Test sting"
! output = "Test sting"
print *, input
call move_alloc(input, output)
print *, output, "DONE1"
call move_alloc(output, output)
print *, output, "DONE2"
end program
is tried to compile with GCC 13.2 then the compile error is arrised
example.f90:11:28:
11 | call move_alloc(output, output)
| 1
Error: The FROM and TO arguments at (1) violate aliasing restrictions (F2003 12.4.1.7)
If compiled with GCC 12.x then there is no error with string_intrinsic
test.
If comment the appropriate test (stdlib/test/string/test_string_intrinsic.f90:716-718
) then string_intrinsic
is passed
! call move(from_string, from_string)
! call check(error, from_string == "", "move: test_case 8")
! if (allocated(error)) return
Expected Behaviour
All tests should be passed.
Version of stdlib
0.2.1, 0.3.0
Platform and Architecture
Gentoo Linux
Additional Information
The build and testing are made with Gentoo package manager to package Fortran stdlib
for Gentoo Guru (maintained by users) repository.
Related issue: https://bugs.gentoo.org/910241