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