From fe98e22d8376f78d241d04af15c62ce5aa34fed8 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 19 Jul 1995 16:22:14 +0000 Subject: [PATCH] * gasp.c (process_assigns): Use toupper before comparing against upper case letter. (whatcond): Likewise. PR 7281. --- gas/ChangeLog | 4 +++ gas/gasp.c | 67 +++++++++++++++++++++++++++++---------------------- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index ca797598924..1eb5e6ed965 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ Wed Jul 19 11:49:25 1995 Ian Lance Taylor + * gasp.c (process_assigns): Use toupper before comparing against + upper case letter. + (whatcond): Likewise. + * config/tc-sh.c (sh_relax): Rename from relax, and make global. Renamed all uses. (insert): Pass a size of 2, not 4. diff --git a/gas/gasp.c b/gas/gasp.c index 28950d2e82d..87e55a1dc76 100644 --- a/gas/gasp.c +++ b/gas/gasp.c @@ -1957,26 +1957,26 @@ process_assigns (idx, in, buf) } else if (idx + 3 < in->len && in->ptr[idx] == '.' - && in->ptr[idx + 1] == 'L' - && in->ptr[idx + 2] == 'E' - && in->ptr[idx + 3] == 'N') + && toupper ((unsigned char) in->ptr[idx + 1]) == 'L' + && toupper ((unsigned char) in->ptr[idx + 2]) == 'E' + && toupper ((unsigned char) in->ptr[idx + 3]) == 'N') idx = dolen (idx + 4, in, buf); else if (idx + 6 < in->len && in->ptr[idx] == '.' - && in->ptr[idx + 1] == 'I' - && in->ptr[idx + 2] == 'N' - && in->ptr[idx + 3] == 'S' - && in->ptr[idx + 4] == 'T' - && in->ptr[idx + 5] == 'R') + && toupper ((unsigned char) in->ptr[idx + 1]) == 'I' + && toupper ((unsigned char) in->ptr[idx + 2]) == 'N' + && toupper ((unsigned char) in->ptr[idx + 3]) == 'S' + && toupper ((unsigned char) in->ptr[idx + 4]) == 'T' + && toupper ((unsigned char) in->ptr[idx + 5]) == 'R') idx = doinstr (idx + 6, in, buf); else if (idx + 7 < in->len && in->ptr[idx] == '.' - && in->ptr[idx + 1] == 'S' - && in->ptr[idx + 2] == 'U' - && in->ptr[idx + 3] == 'B' - && in->ptr[idx + 4] == 'S' - && in->ptr[idx + 5] == 'T' - && in->ptr[idx + 6] == 'R') + && toupper ((unsigned char) in->ptr[idx + 1]) == 'S' + && toupper ((unsigned char) in->ptr[idx + 2]) == 'U' + && toupper ((unsigned char) in->ptr[idx + 3]) == 'B' + && toupper ((unsigned char) in->ptr[idx + 4]) == 'S' + && toupper ((unsigned char) in->ptr[idx + 5]) == 'T' + && toupper ((unsigned char) in->ptr[idx + 6]) == 'R') idx = dosubstr (idx + 7, in, buf); else if (ISFIRSTCHAR (in->ptr[idx])) { @@ -2275,22 +2275,31 @@ whatcond (idx, in, val) int *val; { int cond; - char *p; + idx = sb_skip_white (idx, in); - p = in->ptr + idx; - if (p[0] == 'E' && p[1] == 'Q') - cond = EQ; - else if (p[0] == 'N' && p[1] == 'E') - cond = NE; - else if (p[0] == 'L' && p[1] == 'T') - cond = LT; - else if (p[0] == 'L' && p[1] == 'E') - cond = LE; - else if (p[0] == 'G' && p[1] == 'T') - cond = GT; - else if (p[0] == 'G' && p[1] == 'E') - cond = GE; - else + cond = NEVER; + if (idx + 1 < in->len) + { + char *p; + char a, b; + + p = in->ptr + idx; + a = toupper ((unsigned char) p[0]); + b = toupper ((unsigned char) p[1]); + if (a == 'E' && b == 'Q') + cond = EQ; + else if (a == 'N' && b == 'E') + cond = NE; + else if (a == 'L' && b == 'T') + cond = LT; + else if (a == 'L' && b == 'E') + cond = LE; + else if (a == 'G' && b == 'T') + cond = GT; + else if (a == 'G' && b == 'E') + cond = GE; + } + if (cond == NEVER) { ERROR ((stderr, "Comparison operator must be one of EQ, NE, LT, LE, GT or GE.\n")); cond = NEVER; -- 2.30.2