ctype<wchar>::do_is(const wchar_t *, const wchar_t *, mask *) problem

Ulrich Weigand Ulrich.Weigand@de.ibm.com
Wed Mar 26 19:16:00 GMT 2003


Hello,

I am getting testsuite failures on
22_locale/ctype/is/wchar_t/wrapped_env.cc.

This test case does:

  cc0 = strlit01;
  cc1 = gctype.is(cc0, cc0 + 13, m02);
  VERIFY( cc1 == strlit01 + 13);

which as far as I understand the C++ standard is supposed to fill the m02
array with codes classifying the characters from strlit01.

However, the implementation that is being called (located in the source
file config/locale/gnu/ctype_members.cc) does this:

  const wchar_t*
  ctype<wchar_t>::
  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __m) const
  {
    while (__lo < __hi && !this->do_is(*__m, *__lo))
      ++__lo;
    return __lo;
  }

which doesn't appear to be correct (__m is used as input parameter,
not output; only the first element of __m is ever used) ...


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design & Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: Ulrich.Weigand@de.ibm.com



More information about the Libstdc++ mailing list