aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-10-07 20:19:32 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-10-07 20:19:32 +0000
commit82e79986482a13c271c28512a4196aadfddcd8f6 (patch)
tree6a5963eeee80894aedb5397a3bc035a22564dc55
parent94b9aa66d805b177bca768ba88368280f9f95b2b (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.dg/intrinsic_verify_1.f9012
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/intrinsics/string_intrinsics.c5
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++)