From be4ac9632a5b745f977d8cef9b278837f6648759 Mon Sep 17 00:00:00 2001 From: sayle Date: Tue, 20 Dec 2005 18:48:47 +0000 Subject: * decNumber.c (decStrEq): Cast string contents to unsigned char instead of int before calling tolower. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108862 138bc75d-0d04-0410-961f-82ee72b054a4 --- libdecnumber/ChangeLog | 5 +++++ libdecnumber/decNumber.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'libdecnumber') diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog index f7368a44c34..706beaaa0a5 100644 --- a/libdecnumber/ChangeLog +++ b/libdecnumber/ChangeLog @@ -1,3 +1,8 @@ +2005-12-20 Roger Sayle + + * decNumber.c (decStrEq): Cast string contents to unsigned char + instead of int before calling tolower. + 2005-12-20 Roger Sayle * decNumber.c (decStrEq): Cast operands to int before calling diff --git a/libdecnumber/decNumber.c b/libdecnumber/decNumber.c index 0625e9f2541..bc11ace8787 100644 --- a/libdecnumber/decNumber.c +++ b/libdecnumber/decNumber.c @@ -5438,14 +5438,16 @@ decStrEq (const char *str1, const char *str2) { for (;; str1++, str2++) { - if (*str1 == *str2) + unsigned char u1 = (unsigned char) *str1; + unsigned char u2 = (unsigned char) *str2; + if (u1 == u2) { - if (*str1 == '\0') + if (u1 == '\0') break; } else { - if (tolower ((int) *str1) != tolower ((int) *str2)) + if (tolower (u1) != tolower (u2)) return 0; } } /* stepping */ -- cgit v1.2.1