diff options
author | Paul Brook <paul@codesourcery.com> | 2004-10-07 20:19:32 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-10-07 20:19:32 +0000 |
commit | 82e79986482a13c271c28512a4196aadfddcd8f6 (patch) | |
tree | 6a5963eeee80894aedb5397a3bc035a22564dc55 | |
parent | 94b9aa66d805b177bca768ba88368280f9f95b2b (diff) | |
download | gcc-82e79986482a13c271c28512a4196aadfddcd8f6.zip gcc-82e79986482a13c271c28512a4196aadfddcd8f6.tar.gz gcc-82e79986482a13c271c28512a4196aadfddcd8f6.tar.bz2 |
string_intrinsics.c (string_verify): Fix off by one error.
* intrinsics/string_intrinsics.c (string_verify): Fix off by one
error.
testsuite/
* gfortran.dg/intrinsic_verify_1.f90: New test.
From-SVN: r88704
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/intrinsic_verify_1.f90 | 12 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/intrinsics/string_intrinsics.c | 5 |
4 files changed, 23 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b4cd8d8..b181df8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2004-10-07 Paul Brook <paul@codesourcery.com> + * gfortran.dg/intrinsic_verify_1.f90: New test. + +2004-10-07 Paul Brook <paul@codesourcery.com> + * gfortran.dg/empty_format_1.f90: Remove stray commas. 2004-10-07 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> diff --git a/gcc/testsuite/gfortran.dg/intrinsic_verify_1.f90 b/gcc/testsuite/gfortran.dg/intrinsic_verify_1.f90 new file mode 100644 index 0000000..c894043 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/intrinsic_verify_1.f90 @@ -0,0 +1,12 @@ +! { dg-do run } +! Test the verify intrinsic. We were ignoring the last character. +program prog + character(len=1) :: c1 + character(len=4) :: c4 + c1 = "E" + if (verify(c1, "1") .ne. 1) call abort + c4 = "ABBA" + if (verify(c4, "A") .ne. 2) call abort + if (verify(c4, "A", back = .true.) .ne. 3) call abort + if (verify(c4, "AB") .ne. 0) call abort +end program diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 82b0577..f361408 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2004-10-07 Paul Brook <paul@codesourcery.com> + + * intrinsics/string_intrinsics.c (string_verify): Fix off by one + error. + 2004-10-06 Paul Brook <paul@codesourcery.com> PR libfortran/17709 diff --git a/libgfortran/intrinsics/string_intrinsics.c b/libgfortran/intrinsics/string_intrinsics.c index 5d23126..ac70a9b 100644 --- a/libgfortran/intrinsics/string_intrinsics.c +++ b/libgfortran/intrinsics/string_intrinsics.c @@ -346,17 +346,16 @@ string_verify (GFC_INTEGER_4 slen, const char * str, GFC_INTEGER_4 setlen, if (back) { - last = 0; + last = -1; start = slen - 1; delta = -1; } else { - last = slen - 1; + last = slen; start = 0; delta = 1; } - i = 0; for (; start != last; start += delta) { for (i = 0; i < setlen; i++) |