aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBud Davis <bdavis9659@comcast.net>2004-05-13 10:11:02 +0000
committerBud Davis <bdavis@gcc.gnu.org>2004-05-13 10:11:02 +0000
commit92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114 (patch)
tree6b9d1350b0d987f11cd8edd85e5f95c559f990bd /gcc
parent014251eae30e30a6cc960f41c939d24ffed00066 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/adjustr.f9046
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