diff options
author | Bud Davis <bdavis9659@comcast.net> | 2004-05-13 10:11:02 +0000 |
---|---|---|
committer | Bud Davis <bdavis@gcc.gnu.org> | 2004-05-13 10:11:02 +0000 |
commit | 92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114 (patch) | |
tree | 6b9d1350b0d987f11cd8edd85e5f95c559f990bd /gcc | |
parent | 014251eae30e30a6cc960f41c939d24ffed00066 (diff) | |
download | gcc-92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114.zip gcc-92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114.tar.gz gcc-92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114.tar.bz2 |
re PR libfortran/15204 (ADJUSTR intrinsic accesses corrupted pointer)
PR fortran/15294
* gfortran.fortran-torture/execute/adjustr.f90: New file.
* io/intrinsic/string_intrinsics.c(adjustr): rework logic.
From-SVN: r81771
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.fortran-torture/execute/adjustr.f90 | 46 |
2 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7f62d4b..be4920e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-05-13 Bud Davis <bdavis9659@comcast.net> + + PR fortran/15294 + * gfortran.fortran-torture/execute/adjustr.f90: New file. + 2004-05-13 Diego Novillo <dnovillo@redhat.com> Merge from tree-ssa-20020619-branch. See diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/adjustr.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/adjustr.f90 new file mode 100644 index 0000000..8264ba7 --- /dev/null +++ b/gcc/testsuite/gfortran.fortran-torture/execute/adjustr.f90 @@ -0,0 +1,46 @@ +! pr 15294 - [gfortran] ADJUSTR intrinsic accesses corrupted pointer +! + program test_adjustr + implicit none + integer test_cases + parameter (test_cases=13) + integer i + character(len=10) s1(test_cases), s2(test_cases) + s1(1)='A' + s2(1)=' A' + s1(2)='AB' + s2(2)=' AB' + s1(3)='ABC' + s2(3)=' ABC' + s1(4)='ABCD' + s2(4)=' ABCD' + s1(5)='ABCDE' + s2(5)=' ABCDE' + s1(6)='ABCDEF' + s2(6)=' ABCDEF' + s1(7)='ABCDEFG' + s2(7)=' ABCDEFG' + s1(8)='ABCDEFGH' + s2(8)=' ABCDEFGH' + s1(9)='ABCDEFGHI' + s2(9)=' ABCDEFGHI' + s1(10)='ABCDEFGHIJ' + s2(10)='ABCDEFGHIJ' + s1(11)='' + s2(11)='' + s1(12)=' ' + s2(12)=' ' + s1(13)=' ' + s2(13)=' ' + do I = 1,test_cases + print*,i + print*, 's1 = "', s1(i), '"' + print*, 's2 = "', s2(i), '"' + print*, 'adjustr(s1) = "', adjustr(s1(i)), '"' + if (adjustr(s1(i)).ne.s2(i)) then + print*,'fail' + call abort + endif + enddo + + end program test_adjustr |