libstdc++/7461: ctype<char>::classic_table() returns offset array on Cygwin
bkoz@gcc.gnu.org
bkoz@gcc.gnu.org
Thu Aug 1 14:39:00 GMT 2002
Synopsis: ctype<char>::classic_table() returns offset array on Cygwin
Responsible-Changed-From-To: unassigned->bkoz
Responsible-Changed-By: bkoz
Responsible-Changed-When: Thu Aug 1 14:39:18 2002
Responsible-Changed-Why:
Mine.
State-Changed-From-To: open->feedback
State-Changed-By: bkoz
State-Changed-When: Thu Aug 1 14:39:18 2002
State-Changed-Why:
Fixed.
2002-08-01 Rick Danos <rdanos@hotmail.com>
PR libstdc++/7461
* config/os/newlib/ctype_noninline.h (classic_table): Add offset.
* config/os/newlib/ctype_inline.h (is): Use static_cast.
Index: config/os/newlib/ctype_inline.h
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/config/os/newlib/ctype_inline.h,v
retrieving revision 1.1
diff -c -p -r1.1 ctype_inline.h
*** config/os/newlib/ctype_inline.h 24 Jun 2002 05:49:54 -0000 1.1
--- config/os/newlib/ctype_inline.h 1 Aug 2002 21:38:07 -0000
***************
*** 1,6 ****
// Locale support -*- C++ -*-
! // Copyright (C) 2000 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
--- 1,6 ----
// Locale support -*- C++ -*-
! // 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,50 ****
bool
ctype<char>::
is(mask __m, char __c) const
! { return (_M_table + 1)[(unsigned char)(__c)] & __m; }
const char*
ctype<char>::
is(const char* __low, const char* __high, mask* __vec) const
{
while (__low < __high)
! *__vec++ = (_M_table + 1)[(unsigned char) (*__low++)];
return __high;
}
--- 37,50 ----
bool
ctype<char>::
is(mask __m, char __c) const
! { return (_M_table + 1)[static_cast<unsigned char>(__c)] & __m; }
const char*
ctype<char>::
is(const char* __low, const char* __high, mask* __vec) const
{
while (__low < __high)
! *__vec++ = (_M_table + 1)[static_cast<unsigned char>(*__low++)];
return __high;
}
***************
*** 52,58 ****
ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const
{
! while (__low < __high && !((_M_table + 1)[(unsigned char)(*__low)] & __m))
++__low;
return __low;
}
--- 52,59 ----
ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const
{
! while (__low < __high
! && !((_M_table + 1)[static_cast<unsigned char>(*__low)] & __m))
++__low;
return __low;
}
***************
*** 62,73 ****
scan_not(mask __m, const char* __low, const char* __high) const
{
while (__low < __high
! && ((_M_table + 1)[(unsigned char)(*__low)] & __m) != 0)
++__low;
return __low;
}
-
-
-
-
-
--- 63,69 ----
scan_not(mask __m, const char* __low, const char* __high) const
{
while (__low < __high
! && ((_M_table + 1)[static_cast<unsigned char>(*__low)] & __m) != 0)
++__low;
return __low;
}
Index: config/os/newlib/ctype_noninline.h
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/config/os/newlib/ctype_noninline.h,v
retrieving revision 1.1
diff -c -p -r1.1 ctype_noninline.h
*** config/os/newlib/ctype_noninline.h 24 Jun 2002 05:49:54 -0000 1.1
--- config/os/newlib/ctype_noninline.h 1 Aug 2002 21:38:07 -0000
***************
*** 35,41 ****
const ctype_base::mask*
ctype<char>::classic_table() throw()
! { return _ctype_; }
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
size_t __refs)
--- 35,41 ----
const ctype_base::mask*
ctype<char>::classic_table() throw()
! { return _ctype_ + 1; }
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
size_t __refs)
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7461
More information about the Gcc-prs
mailing list