From: Benjamin Kosnik Date: Thu, 1 Aug 2002 22:17:23 +0000 (+0000) Subject: re PR libstdc++/7461 (ctype::classic_table() returns offset array on Cygwin) X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3450b8d03cda7bfc8f1db76506ad574404da8907;p=platform%2Fupstream%2Fgcc.git re PR libstdc++/7461 (ctype::classic_table() returns offset array on Cygwin) 2002-08-01 Rick Danos PR libstdc++/7461 * config/os/newlib/ctype_noninline.h (classic_table): Add offset. * config/os/newlib/ctype_inline.h (is): Use static_cast. From-SVN: r55955 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e63ff89..7ad59c9 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,14 @@ +2002-08-01 Rick Danos + + PR libstdc++/7461 + * config/os/newlib/ctype_noninline.h (classic_table): Add offset. + * config/os/newlib/ctype_inline.h (is): Use static_cast. + +2002-08-01 Neil Booth + + * libsupc++/Makefile.am (LT_COMPILE): Remove C++ flags. + * libsupc++/Makefile.in: Regenerate. + 2002-08-01 Benjamin Kosnik Jakub Jelinek diff --git a/libstdc++-v3/config/os/newlib/ctype_inline.h b/libstdc++-v3/config/os/newlib/ctype_inline.h index cddffed..cd3e9ba 100644 --- a/libstdc++-v3/config/os/newlib/ctype_inline.h +++ b/libstdc++-v3/config/os/newlib/ctype_inline.h @@ -1,6 +1,6 @@ // Locale support -*- C++ -*- -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -37,14 +37,14 @@ bool ctype:: is(mask __m, char __c) const - { return (_M_table + 1)[(unsigned char)(__c)] & __m; } + { return (_M_table + 1)[static_cast(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) - *__vec++ = (_M_table + 1)[(unsigned char) (*__low++)]; + *__vec++ = (_M_table + 1)[static_cast(*__low++)]; return __high; } @@ -52,7 +52,8 @@ ctype:: scan_is(mask __m, const char* __low, const char* __high) const { - while (__low < __high && !((_M_table + 1)[(unsigned char)(*__low)] & __m)) + while (__low < __high + && !((_M_table + 1)[static_cast(*__low)] & __m)) ++__low; return __low; } @@ -62,12 +63,7 @@ scan_not(mask __m, const char* __low, const char* __high) const { while (__low < __high - && ((_M_table + 1)[(unsigned char)(*__low)] & __m) != 0) + && ((_M_table + 1)[static_cast(*__low)] & __m) != 0) ++__low; return __low; } - - - - - diff --git a/libstdc++-v3/config/os/newlib/ctype_noninline.h b/libstdc++-v3/config/os/newlib/ctype_noninline.h index 7cb1ece..b511c4a 100644 --- a/libstdc++-v3/config/os/newlib/ctype_noninline.h +++ b/libstdc++-v3/config/os/newlib/ctype_noninline.h @@ -35,7 +35,7 @@ const ctype_base::mask* ctype::classic_table() throw() - { return _ctype_; } + { return _ctype_ + 1; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs)