diff options
Diffstat (limited to 'libgfortran/intrinsics/string_intrinsics_inc.c')
-rw-r--r-- | libgfortran/intrinsics/string_intrinsics_inc.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/libgfortran/intrinsics/string_intrinsics_inc.c b/libgfortran/intrinsics/string_intrinsics_inc.c index 0da5130..f514f4c 100644 --- a/libgfortran/intrinsics/string_intrinsics_inc.c +++ b/libgfortran/intrinsics/string_intrinsics_inc.c @@ -224,15 +224,14 @@ string_len_trim (gfc_charlen_type len, const CHARTYPE *s) break; } } + + /* Now continue for the last characters with naive approach below. */ + assert (i >= 0); } /* Simply look for the first non-blank character. */ - while (s[i] == ' ') - { - if (i == 0) - return 0; - --i; - } + while (i >= 0 && s[i] == ' ') + --i; return i + 1; } @@ -328,12 +327,12 @@ string_scan (gfc_charlen_type slen, const CHARTYPE *str, if (back) { - for (i = slen; i != 0; i--) + for (i = slen - 1; i >= 0; i--) { for (j = 0; j < setlen; j++) { - if (str[i - 1] == set[j]) - return i; + if (str[i] == set[j]) + return (i + 1); } } } |