summaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics/string_intrinsics.c
diff options
context:
space:
mode:
authorBud Davis <bdavis9659@comcast.net>2004-08-25 00:14:07 +0000
committerBud Davis <bdavis@gcc.gnu.org>2004-08-25 00:14:07 +0000
commit02d735f6bd9325efc25367cfd399557e19bb2532 (patch)
treebf1547a2a432ec2b371bd167aa5e7c203607d55e /libgfortran/intrinsics/string_intrinsics.c
parent1e19ac749db3cd39fb22d58775282c0058bc3c8a (diff)
downloadgcc-02d735f6bd9325efc25367cfd399557e19bb2532.tar.gz
re PR libfortran/17164 (index function not working properly)
2004-08-24 Bud Davis <bdavis9659@comcast.net> PR fortran/17164 * runtime/string_intrinsics.c (string_index):check for substring longer than string. * gfortran.dg/pr17164.f90: New test. From-SVN: r86527
Diffstat (limited to 'libgfortran/intrinsics/string_intrinsics.c')
-rw-r--r--libgfortran/intrinsics/string_intrinsics.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libgfortran/intrinsics/string_intrinsics.c b/libgfortran/intrinsics/string_intrinsics.c
index 2cd07a2b77b..5d231268ab6 100644
--- a/libgfortran/intrinsics/string_intrinsics.c
+++ b/libgfortran/intrinsics/string_intrinsics.c
@@ -221,6 +221,9 @@ string_index (GFC_INTEGER_4 slen, const char * str, GFC_INTEGER_4 sslen,
if (sslen == 0)
return 1;
+ if (sslen > slen)
+ return 0;
+
if (!back)
{
last = slen + 1 - sslen;