Commit a3e4cd81 by Jonathan Wakely Committed by Jonathan Wakely

Makefile.am: Move ctype.cc, ctype_configure_char.cc and ctype_members.cc to ...

	* src/c++98/Makefile.am: Move ctype.cc, ctype_configure_char.cc and
	ctype_members.cc to ...
	* src/c++11/Makefile.am: Here.
	* src/c++98/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++98/ctype.cc: Move file to ...
	* src/c++11/ctype.cc: Here, define ctype_base::blank.
	* config/abi/pre/gnu.ver: Export ctype_base::blank.
	* config/locale/generic/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Handle blank. Update comments.
	* config/locale/gnu/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
	* config/os/aix/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bionic/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/bsd/darwin/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/darwin/ctype_inline.h (ctype<char>::is): Use blank.
	(ctype<wchar_t::do_is): Likewise.
	* config/os/bsd/dragonfly/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/dragonfly/ctype_inline.h (ctype<char>::is): Use blank.
	(ctype<wchar_t::do_is): Likewise.
	* config/os/bsd/freebsd/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/freebsd/ctype_inline.h (ctype<char>::is): Use blank.
	(ctype<wchar_t::do_is): Likewise.
	* config/os/bsd/netbsd/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/openbsd/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/djgpp/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/generic/ctype_base.h (ctype_base::blank): Declare.
	* config/os/generic/ctype_inline.h (ctype<char>::is): Use blank.
	* config/os/gnu-linux/ctype_base.h (ctype_base::blank): Declare.
	* config/os/hpux/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/mingw32-w64/ctype_base.h (ctype_base::blank): Declare.
	* config/os/mingw32-w64/ctype_configure_char.cc
	(ctype<char>::classic_table()): Set blank bit for space and tab.
	* config/os/mingw32/ctype_base.h (ctype_base::blank): Declare.
	* config/os/mingw32/ctype_configure_char.cc
	(ctype<char>::classic_table()): Set blank bit for space and tab.
	* config/os/newlib/ctype_base.h (ctype_base::blank): Declare.
	* config/os/qnx/qnx6.1/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/solaris/solaris2.10/ctype_base.h (ctype_base::blank):
	Likewise.
	* config/os/tpf/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/uclibc/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/vxworks/ctype_base.h (ctype_base::blank): Likewise.
	* include/bits/locale_facets.h (isblank): Define.
	* include/bits/localefwd.h (isblank): Declare.
	* testsuite/22_locale/classification/isblank.cc: New.
	* testsuite/22_locale/ctype_base/blank.cc: New.

From-SVN: r216464
parent b0b4483e
2014-10-16 Jonathan Wakely <jwakely@redhat.com>
* src/c++98/Makefile.am: Move ctype.cc, ctype_configure_char.cc and
ctype_members.cc to ...
* src/c++11/Makefile.am: Here.
* src/c++98/Makefile.in: Regenerate.
* src/c++11/Makefile.in: Regenerate.
* src/c++98/ctype.cc: Move file to ...
* src/c++11/ctype.cc: Here, define ctype_base::blank.
* config/abi/pre/gnu.ver: Export ctype_base::blank.
* config/locale/generic/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Handle blank. Update comments.
* config/locale/gnu/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
* config/os/aix/ctype_base.h (ctype_base::blank): Declare.
* config/os/bionic/ctype_base.h (ctype_base::blank): Likewise.
* config/os/bsd/darwin/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/darwin/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/dragonfly/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/dragonfly/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/freebsd/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/freebsd/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/netbsd/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/openbsd/ctype_base.h (ctype_base::blank): Likewise.
* config/os/djgpp/ctype_base.h (ctype_base::blank): Likewise.
* config/os/generic/ctype_base.h (ctype_base::blank): Declare.
* config/os/generic/ctype_inline.h (ctype<char>::is): Use blank.
* config/os/gnu-linux/ctype_base.h (ctype_base::blank): Declare.
* config/os/hpux/ctype_base.h (ctype_base::blank): Likewise.
* config/os/mingw32-w64/ctype_base.h (ctype_base::blank): Declare.
* config/os/mingw32-w64/ctype_configure_char.cc
(ctype<char>::classic_table()): Set blank bit for space and tab.
* config/os/mingw32/ctype_base.h (ctype_base::blank): Declare.
* config/os/mingw32/ctype_configure_char.cc
(ctype<char>::classic_table()): Set blank bit for space and tab.
* config/os/newlib/ctype_base.h (ctype_base::blank): Declare.
* config/os/qnx/qnx6.1/ctype_base.h (ctype_base::blank): Likewise.
* config/os/solaris/solaris2.10/ctype_base.h (ctype_base::blank):
Likewise.
* config/os/tpf/ctype_base.h (ctype_base::blank): Likewise.
* config/os/uclibc/ctype_base.h (ctype_base::blank): Likewise.
* config/os/vxworks/ctype_base.h (ctype_base::blank): Likewise.
* include/bits/locale_facets.h (isblank): Define.
* include/bits/localefwd.h (isblank): Declare.
* testsuite/22_locale/classification/isblank.cc: New.
* testsuite/22_locale/ctype_base/blank.cc: New.
2014-10-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 2014-10-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
* testsuite/lib/libstdc++.exp (v3-copy-file): New proc split from ... * testsuite/lib/libstdc++.exp (v3-copy-file): New proc split from ...
......
...@@ -513,7 +513,7 @@ GLIBCXX_3.4 { ...@@ -513,7 +513,7 @@ GLIBCXX_3.4 {
_ZNSt5ctypeI[cw]*; _ZNSt5ctypeI[cw]*;
# std::ctype_base # std::ctype_base
_ZNSt10ctype_base*; _ZNSt10ctype_base[56][ac-z]*;
# std::ctype_byname # std::ctype_byname
_ZNSt12ctype_bynameI[cw]*; _ZNSt12ctype_bynameI[cw]*;
...@@ -1473,6 +1473,9 @@ GLIBCXX_3.4.21 { ...@@ -1473,6 +1473,9 @@ GLIBCXX_3.4.21 {
# std::basic_ios::operator bool() const # std::basic_ios::operator bool() const
_ZNKSt9basic_iosI[cw]St11char_traitsI[cw]EEcvbEv; _ZNKSt9basic_iosI[cw]St11char_traitsI[cw]EEcvbEv;
# std::ctype_base::blank
_ZNSt10ctype_base5blankE;
} GLIBCXX_3.4.20; } GLIBCXX_3.4.20;
......
...@@ -93,7 +93,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -93,7 +93,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__ret = wctype("graph"); __ret = wctype("graph");
break; break;
default: default:
__ret = __wmask_type(); // For some targets ctype_base::blank == ctype_base::space so check
// here to avoid a duplicate case error.
if (__m == blank)
__ret = wctype("blank");
else
__ret = __wmask_type();
} }
return __ret; return __ret;
}; };
...@@ -133,7 +138,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -133,7 +138,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
do_is(mask __m, char_type __c) const do_is(mask __m, char_type __c) const
{ {
bool __ret = false; bool __ret = false;
// Generically, 15 (instead of 10) since we don't know the numerical // Generically, 15 (instead of 11) since we don't know the numerical
// encoding of the various categories in /usr/include/ctype.h. // encoding of the various categories in /usr/include/ctype.h.
const size_t __bitmasksize = 15; const size_t __bitmasksize = 15;
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
...@@ -152,7 +157,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -152,7 +157,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
for (;__lo < __hi; ++__vec, ++__lo) for (;__lo < __hi; ++__vec, ++__lo)
{ {
// Generically, 15 (instead of 10) since we don't know the numerical // Generically, 15 (instead of 11) since we don't know the numerical
// encoding of the various categories in /usr/include/ctype.h. // encoding of the various categories in /usr/include/ctype.h.
const size_t __bitmasksize = 15; const size_t __bitmasksize = 15;
mask __m = 0; mask __m = 0;
......
...@@ -94,6 +94,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -94,6 +94,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
case graph: case graph:
__ret = __wctype_l("graph", _M_c_locale_ctype); __ret = __wctype_l("graph", _M_c_locale_ctype);
break; break;
case blank:
__ret = __wctype_l("blank", _M_c_locale_ctype);
break;
default: default:
__ret = __wmask_type(); __ret = __wmask_type();
} }
...@@ -144,8 +147,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -144,8 +147,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype); __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
else else
{ {
// Highest bitmask in ctype_base == 10, but extra in "C" // Highest bitmask in ctype_base == 11
// library for blank.
const size_t __bitmasksize = 11; const size_t __bitmasksize = 11;
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
if (__m & _M_bit[__bitcur]) if (__m & _M_bit[__bitcur])
...@@ -168,8 +170,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -168,8 +170,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
for (; __lo < __hi; ++__vec, ++__lo) for (; __lo < __hi; ++__vec, ++__lo)
{ {
// Highest bitmask in ctype_base == 10, but extra in "C" // Highest bitmask in ctype_base == 11
// library for blank.
const size_t __bitmasksize = 11; const size_t __bitmasksize = 11;
mask __m = 0; mask __m = 0;
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
......
...@@ -52,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -52,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _ISCNTRL; static const mask cntrl = _ISCNTRL;
static const mask punct = _ISPUNCT; static const mask punct = _ISPUNCT;
static const mask alnum = _ISALPHA | _ISDIGIT; static const mask alnum = _ISALPHA | _ISDIGIT;
#if __cplusplus >= 201103L
static const mask blank = _ISBLANK;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -26,9 +26,7 @@ ...@@ -26,9 +26,7 @@
// ISO C++ 14882: 22.1 Locales // ISO C++ 14882: 22.1 Locales
// //
// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1 // Information as gleaned from /usr/include/ctype.h
// Support for Solaris 2.5.1
namespace std _GLIBCXX_VISIBILITY(default) namespace std _GLIBCXX_VISIBILITY(default)
{ {
...@@ -54,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -54,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _C; static const mask cntrl = _C;
static const mask punct = _P; static const mask punct = _P;
static const mask alnum = _U | _L | _N; static const mask alnum = _U | _L | _N;
#if __cplusplus >= 201103L
static const mask blank = space;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -54,6 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -54,6 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _CTYPE_C; static const mask cntrl = _CTYPE_C;
static const mask punct = _CTYPE_P; static const mask punct = _CTYPE_P;
static const mask alnum = _CTYPE_A | _CTYPE_D; static const mask alnum = _CTYPE_A | _CTYPE_D;
static const mask blank = _CTYPE_B;
#else #else
// Older versions, including Free BSD 3.4, use this style of define. // Older versions, including Free BSD 3.4, use this style of define.
static const mask upper = _U; static const mask upper = _U;
...@@ -67,6 +68,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -67,6 +68,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _C; static const mask cntrl = _C;
static const mask punct = _P; static const mask punct = _P;
static const mask alnum = _A | _D; static const mask alnum = _A | _D;
static const mask blank = _B;
#endif #endif
}; };
......
...@@ -60,7 +60,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -60,7 +60,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
#if defined (_CTYPE_S) || defined (__istype) #if defined (_CTYPE_S) || defined (__istype)
*__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
| space | print | graph | cntrl | punct | alnum); | space | print | graph | cntrl | punct | alnum
| blank);
#else #else
mask __m = 0; mask __m = 0;
if (this->is(upper, *__low)) __m |= upper; if (this->is(upper, *__low)) __m |= upper;
...@@ -75,6 +76,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -75,6 +76,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (this->is(punct, *__low)) __m |= punct; if (this->is(punct, *__low)) __m |= punct;
// Do not include explicit line for alnum mask since it is a // Do not include explicit line for alnum mask since it is a
// pure composite of masks on FreeBSD. // pure composite of masks on FreeBSD.
if (this->is(blank, *__low)) __m |= blank;
*__vec = __m; *__vec = __m;
#endif #endif
} }
...@@ -123,7 +125,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -123,7 +125,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
for (; __lo < __hi; ++__vec, ++__lo) for (; __lo < __hi; ++__vec, ++__lo)
*__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit *__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit
| space | print | graph | cntrl | punct | alnum); | space | print | graph | cntrl | punct | alnum
| blank);
return __hi; return __hi;
} }
......
...@@ -52,6 +52,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -52,6 +52,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _CTYPE_C; static const mask cntrl = _CTYPE_C;
static const mask punct = _CTYPE_P; static const mask punct = _CTYPE_P;
static const mask alnum = _CTYPE_A | _CTYPE_D; static const mask alnum = _CTYPE_A | _CTYPE_D;
static const mask blank = _CTYPE_B;
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -59,7 +59,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -59,7 +59,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
for (;__low < __high; ++__vec, ++__low) for (;__low < __high; ++__vec, ++__low)
{ {
*__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
| space | print | graph | cntrl | punct | alnum); | space | print | graph | cntrl | punct | alnum
| blank);
} }
return __high; return __high;
} }
...@@ -106,7 +107,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -106,7 +107,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
for (; __lo < __hi; ++__vec, ++__lo) for (; __lo < __hi; ++__vec, ++__lo)
*__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit *__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit
| space | print | graph | cntrl | punct | alnum); | space | print | graph | cntrl | punct | alnum
| blank);
return __hi; return __hi;
} }
......
...@@ -56,6 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -56,6 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _CTYPE_C; static const mask cntrl = _CTYPE_C;
static const mask punct = _CTYPE_P; static const mask punct = _CTYPE_P;
static const mask alnum = _CTYPE_A | _CTYPE_D; static const mask alnum = _CTYPE_A | _CTYPE_D;
static const mask blank = _CTYPE_B;
#else #else
// Older versions, including Free BSD 3.4, use this style of define. // Older versions, including Free BSD 3.4, use this style of define.
static const mask upper = _U; static const mask upper = _U;
...@@ -69,6 +70,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -69,6 +70,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _C; static const mask cntrl = _C;
static const mask punct = _P; static const mask punct = _P;
static const mask alnum = _A | _D; static const mask alnum = _A | _D;
static const mask blank = _B;
#endif #endif
}; };
......
...@@ -60,7 +60,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -60,7 +60,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
#if defined (_CTYPE_S) || defined (__istype) #if defined (_CTYPE_S) || defined (__istype)
*__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
| space | print | graph | cntrl | punct | alnum); | space | print | graph | cntrl | punct | alnum
| blank);
#else #else
mask __m = 0; mask __m = 0;
if (this->is(upper, *__low)) __m |= upper; if (this->is(upper, *__low)) __m |= upper;
...@@ -75,6 +76,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -75,6 +76,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (this->is(punct, *__low)) __m |= punct; if (this->is(punct, *__low)) __m |= punct;
// Do not include explicit line for alnum mask since it is a // Do not include explicit line for alnum mask since it is a
// pure composite of masks on FreeBSD. // pure composite of masks on FreeBSD.
if (this->is(blank, *__low)) __m |= blank;
*__vec = __m; *__vec = __m;
#endif #endif
} }
...@@ -123,7 +125,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -123,7 +125,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
for (; __lo < __hi; ++__vec, ++__lo) for (; __lo < __hi; ++__vec, ++__lo)
*__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit *__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit
| space | print | graph | cntrl | punct | alnum); | space | print | graph | cntrl | punct | alnum
| blank);
return __hi; return __hi;
} }
......
...@@ -70,6 +70,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -70,6 +70,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask punct = _CTYPE_P; static const mask punct = _CTYPE_P;
static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N; static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
#endif #endif
#if __cplusplus >= 201103L
static const mask blank = space;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -53,6 +53,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -53,6 +53,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _C; static const mask cntrl = _C;
static const mask punct = _P; static const mask punct = _P;
static const mask alnum = _U | _L | _N; static const mask alnum = _U | _L | _N;
#if __cplusplus >= 201103L
static const mask blank = space;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -51,6 +51,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -51,6 +51,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask xdigit = __dj_ISXDIGIT; // Hexadecimal numeric static const mask xdigit = __dj_ISXDIGIT; // Hexadecimal numeric
static const mask alnum = __dj_ISALPHA | __dj_ISDIGIT; // Alphanumeric static const mask alnum = __dj_ISALPHA | __dj_ISDIGIT; // Alphanumeric
static const mask graph = __dj_ISALPHA | __dj_ISDIGIT | __dj_ISPUNCT; // Graphical static const mask graph = __dj_ISALPHA | __dj_ISDIGIT | __dj_ISPUNCT; // Graphical
#if __cplusplus >= 201103L
static const mask blank = __dj_ISBLANK;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -52,6 +52,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -52,6 +52,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = 1 << 8; static const mask cntrl = 1 << 8;
static const mask punct = 1 << 9; static const mask punct = 1 << 9;
static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit
static const mask blank = 1 << 10;
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -97,6 +97,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -97,6 +97,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
case graph: case graph:
__testis = isgraph(__c); __testis = isgraph(__c);
break; break;
#ifdef _GLIBCXX_USE_C99_CTYPE_TR1
case blank:
__testis = isblank(__c);
break;
#endif
default: default:
__testis = false; __testis = false;
break; break;
...@@ -117,7 +122,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -117,7 +122,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
else else
{ {
// Highest bitmask in ctype_base == 10. // Highest bitmask in ctype_base == 11.
const size_t __bitmasksize = 15; const size_t __bitmasksize = 15;
for (;__low < __high; ++__vec, ++__low) for (;__low < __high; ++__vec, ++__low)
{ {
......
...@@ -57,6 +57,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -57,6 +57,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _IScntrl; static const mask cntrl = _IScntrl;
static const mask punct = _ISpunct; static const mask punct = _ISpunct;
static const mask alnum = _ISalpha | _ISdigit; static const mask alnum = _ISalpha | _ISdigit;
#if __cplusplus >= 201103L
static const mask blank = _ISblank;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -52,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -52,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _ISCNTRL; static const mask cntrl = _ISCNTRL;
static const mask punct = _ISPUNCT; static const mask punct = _ISPUNCT;
static const mask alnum = _ISALPHA | _ISDIGIT; static const mask alnum = _ISALPHA | _ISDIGIT;
#if __cplusplus >= 201103L
static const mask blank = _ISBLANK;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -58,6 +58,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -58,6 +58,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = 1 << 8; static const mask cntrl = 1 << 8;
static const mask punct = 1 << 9; static const mask punct = 1 << 9;
static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit
#if __cplusplus >= 201103L
static const mask blank = 1 << 10;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -54,7 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -54,7 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
cntrl /* ^F */, cntrl /* ^F */,
cntrl /* ^G */, cntrl /* ^G */,
cntrl /* ^H */, cntrl /* ^H */,
ctype_base::mask(space | cntrl) /* tab */, ctype_base::mask(space | cntrl | blank) /* tab */,
ctype_base::mask(space | cntrl) /* LF */, ctype_base::mask(space | cntrl) /* LF */,
ctype_base::mask(space | cntrl) /* ^K */, ctype_base::mask(space | cntrl) /* ^K */,
ctype_base::mask(space | cntrl) /* FF */, ctype_base::mask(space | cntrl) /* FF */,
...@@ -77,7 +77,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -77,7 +77,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
cntrl /* ^] */, cntrl /* ^] */,
cntrl /* ^^ */, cntrl /* ^^ */,
cntrl /* ^_ */, cntrl /* ^_ */,
ctype_base::mask(space | print) /* */, ctype_base::mask(space | print | blank) /* */,
ctype_base::mask(punct | print) /* ! */, ctype_base::mask(punct | print) /* ! */,
ctype_base::mask(punct | print) /* " */, ctype_base::mask(punct | print) /* " */,
ctype_base::mask(punct | print) /* # */, ctype_base::mask(punct | print) /* # */,
......
...@@ -58,6 +58,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -58,6 +58,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = 1 << 8; static const mask cntrl = 1 << 8;
static const mask punct = 1 << 9; static const mask punct = 1 << 9;
static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit
#if __cplusplus >= 201103L
static const mask blank = 1 << 10;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -54,7 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -54,7 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
cntrl /* ^F */, cntrl /* ^F */,
cntrl /* ^G */, cntrl /* ^G */,
cntrl /* ^H */, cntrl /* ^H */,
ctype_base::mask(space | cntrl) /* tab */, ctype_base::mask(space | cntrl | blank) /* tab */,
ctype_base::mask(space | cntrl) /* LF */, ctype_base::mask(space | cntrl) /* LF */,
ctype_base::mask(space | cntrl) /* ^K */, ctype_base::mask(space | cntrl) /* ^K */,
ctype_base::mask(space | cntrl) /* FF */, ctype_base::mask(space | cntrl) /* FF */,
...@@ -77,7 +77,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -77,7 +77,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
cntrl /* ^] */, cntrl /* ^] */,
cntrl /* ^^ */, cntrl /* ^^ */,
cntrl /* ^_ */, cntrl /* ^_ */,
ctype_base::mask(space | print) /* */, ctype_base::mask(space | print | blank) /* */,
ctype_base::mask(punct | print) /* ! */, ctype_base::mask(punct | print) /* ! */,
ctype_base::mask(punct | print) /* " */, ctype_base::mask(punct | print) /* " */,
ctype_base::mask(punct | print) /* # */, ctype_base::mask(punct | print) /* # */,
......
...@@ -26,10 +26,8 @@ ...@@ -26,10 +26,8 @@
// ISO C++ 14882: 22.1 Locales // ISO C++ 14882: 22.1 Locales
// //
// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1 // Information as gleaned from /usr/include/ctype.h
// Support for Solaris 2.5.1
namespace std _GLIBCXX_VISIBILITY(default) namespace std _GLIBCXX_VISIBILITY(default)
{ {
_GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_VERSION
...@@ -54,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -54,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _C; static const mask cntrl = _C;
static const mask punct = _P; static const mask punct = _P;
static const mask alnum = _U | _L | _N; static const mask alnum = _U | _L | _N;
#if __cplusplus >= 201103L
static const mask blank = space;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -57,6 +57,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -57,6 +57,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _BB; static const mask cntrl = _BB;
static const mask punct = _PU; static const mask punct = _PU;
static const mask alnum = _DI | _LO | _UP | _XA; static const mask alnum = _DI | _LO | _UP | _XA;
#if __cplusplus >= 201103L
static const mask blank = _SP | _XB;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -54,6 +54,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -54,6 +54,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _ISCNTRL; static const mask cntrl = _ISCNTRL;
static const mask punct = _ISPUNCT; static const mask punct = _ISPUNCT;
static const mask alnum = _ISALPHA | _ISDIGIT; static const mask alnum = _ISALPHA | _ISDIGIT;
#if __cplusplus >= 201103L
static const mask blank = _ISBLANK;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -52,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -52,6 +52,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _IScntrl; static const mask cntrl = _IScntrl;
static const mask punct = _ISpunct; static const mask punct = _ISpunct;
static const mask alnum = _ISalpha | _ISdigit; static const mask alnum = _ISalpha | _ISdigit;
#if __cplusplus >= 201103L
static const mask blank = _ISblank;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -59,6 +59,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -59,6 +59,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _IScntrl; static const mask cntrl = _IScntrl;
static const mask punct = _ISpunct; static const mask punct = _ISpunct;
static const mask alnum = _ISalpha | _ISdigit; static const mask alnum = _ISalpha | _ISdigit;
#if __cplusplus >= 201103L
static const mask blank = _ISblank;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -53,6 +53,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -53,6 +53,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static const mask cntrl = _C_CONTROL; static const mask cntrl = _C_CONTROL;
static const mask punct = _C_PUNCT; static const mask punct = _C_PUNCT;
static const mask alnum = _C_UPPER | _C_LOWER | _C_NUMBER; static const mask alnum = _C_UPPER | _C_LOWER | _C_NUMBER;
#if __cplusplus >= 201103L
static const mask blank = _C_WHITE_SPACE;
#endif
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
......
...@@ -2590,6 +2590,14 @@ _GLIBCXX_END_NAMESPACE_LDBL ...@@ -2590,6 +2590,14 @@ _GLIBCXX_END_NAMESPACE_LDBL
isgraph(_CharT __c, const locale& __loc) isgraph(_CharT __c, const locale& __loc)
{ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); } { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); }
#if __cplusplus >= 201103L
/// Convenience interface to ctype.is(ctype_base::blank, __c).
template<typename _CharT>
inline bool
isblank(_CharT __c, const locale& __loc)
{ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::blank, __c); }
#endif
/// Convenience interface to ctype.toupper(__c). /// Convenience interface to ctype.toupper(__c).
template<typename _CharT> template<typename _CharT>
inline _CharT inline _CharT
......
...@@ -107,6 +107,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -107,6 +107,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
bool bool
isgraph(_CharT, const locale&); isgraph(_CharT, const locale&);
#if __cplusplus >= 201103L
template<typename _CharT>
bool
isblank(_CharT, const locale&);
#endif
template<typename _CharT> template<typename _CharT>
_CharT _CharT
toupper(_CharT, const locale&); toupper(_CharT, const locale&);
......
...@@ -27,9 +27,22 @@ noinst_LTLIBRARIES = libc++11convenience.la ...@@ -27,9 +27,22 @@ noinst_LTLIBRARIES = libc++11convenience.la
headers = headers =
# Source files linked in via configuration/make substitution for a
# particular host.
host_sources = \
ctype_configure_char.cc \
ctype_members.cc
ctype_configure_char.cc: ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc
$(LN_S) ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc . || true
ctype_members.cc: ${glibcxx_srcdir}/$(CCTYPE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCTYPE_CC) . || true
sources = \ sources = \
chrono.cc \ chrono.cc \
condition_variable.cc \ condition_variable.cc \
ctype.cc \
debug.cc \ debug.cc \
functexcept.cc \ functexcept.cc \
functional.cc \ functional.cc \
...@@ -45,7 +58,8 @@ sources = \ ...@@ -45,7 +58,8 @@ sources = \
shared_ptr.cc \ shared_ptr.cc \
snprintf_lite.cc \ snprintf_lite.cc \
system_error.cc \ system_error.cc \
thread.cc thread.cc \
${host_sources}
if ENABLE_EXTERN_TEMPLATE if ENABLE_EXTERN_TEMPLATE
# XTEMPLATE_FLAGS = -fno-implicit-templates # XTEMPLATE_FLAGS = -fno-implicit-templates
......
...@@ -67,18 +67,19 @@ CONFIG_CLEAN_FILES = ...@@ -67,18 +67,19 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES)
libc__11convenience_la_LIBADD = libc__11convenience_la_LIBADD =
am__objects_1 = chrono.lo condition_variable.lo debug.lo \ am__objects_1 = ctype_configure_char.lo ctype_members.lo
am__objects_2 = chrono.lo condition_variable.lo ctype.lo debug.lo \
functexcept.lo functional.lo future.lo hash_c++0x.lo \ functexcept.lo functional.lo future.lo hash_c++0x.lo \
hashtable_c++0x.lo ios.lo limits.lo mutex.lo placeholders.lo \ hashtable_c++0x.lo ios.lo limits.lo mutex.lo placeholders.lo \
random.lo regex.lo shared_ptr.lo snprintf_lite.lo \ random.lo regex.lo shared_ptr.lo snprintf_lite.lo \
system_error.lo thread.lo system_error.lo thread.lo $(am__objects_1)
@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = ext11-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_3 = ext11-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ fstream-inst.lo ios-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ fstream-inst.lo ios-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ iostream-inst.lo istream-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ iostream-inst.lo istream-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ ostream-inst.lo sstream-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ ostream-inst.lo sstream-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ streambuf-inst.lo string-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ streambuf-inst.lo string-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst.lo @ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst.lo
am_libc__11convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2) am_libc__11convenience_la_OBJECTS = $(am__objects_2) $(am__objects_3)
libc__11convenience_la_OBJECTS = $(am_libc__11convenience_la_OBJECTS) libc__11convenience_la_OBJECTS = $(am_libc__11convenience_la_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = depcomp =
...@@ -314,9 +315,17 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) ...@@ -314,9 +315,17 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
# Convenience library for C++11 runtime. # Convenience library for C++11 runtime.
noinst_LTLIBRARIES = libc++11convenience.la noinst_LTLIBRARIES = libc++11convenience.la
headers = headers =
# Source files linked in via configuration/make substitution for a
# particular host.
host_sources = \
ctype_configure_char.cc \
ctype_members.cc
sources = \ sources = \
chrono.cc \ chrono.cc \
condition_variable.cc \ condition_variable.cc \
ctype.cc \
debug.cc \ debug.cc \
functexcept.cc \ functexcept.cc \
functional.cc \ functional.cc \
...@@ -332,7 +341,8 @@ sources = \ ...@@ -332,7 +341,8 @@ sources = \
shared_ptr.cc \ shared_ptr.cc \
snprintf_lite.cc \ snprintf_lite.cc \
system_error.cc \ system_error.cc \
thread.cc thread.cc \
${host_sources}
# XTEMPLATE_FLAGS = # XTEMPLATE_FLAGS =
@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources =
...@@ -646,6 +656,12 @@ uninstall-am: ...@@ -646,6 +656,12 @@ uninstall-am:
pdf pdf-am ps ps-am tags uninstall uninstall-am pdf pdf-am ps ps-am tags uninstall uninstall-am
ctype_configure_char.cc: ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc
$(LN_S) ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc . || true
ctype_members.cc: ${glibcxx_srcdir}/$(CCTYPE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCTYPE_CC) . || true
vpath % $(top_srcdir)/src/c++11 vpath % $(top_srcdir)/src/c++11
# Use special rules for the hashtable.cc file so that all # Use special rules for the hashtable.cc file so that all
......
...@@ -40,6 +40,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -40,6 +40,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const ctype_base::mask ctype_base::xdigit; const ctype_base::mask ctype_base::xdigit;
const ctype_base::mask ctype_base::alnum; const ctype_base::mask ctype_base::alnum;
const ctype_base::mask ctype_base::graph; const ctype_base::mask ctype_base::graph;
const ctype_base::mask ctype_base::blank;
// Definitions for locale::id of standard facets that are specialized. // Definitions for locale::id of standard facets that are specialized.
locale::id ctype<char>::id; locale::id ctype<char>::id;
......
...@@ -33,8 +33,6 @@ host_sources = \ ...@@ -33,8 +33,6 @@ host_sources = \
atomicity.cc \ atomicity.cc \
codecvt_members.cc \ codecvt_members.cc \
collate_members.cc \ collate_members.cc \
ctype_configure_char.cc \
ctype_members.cc \
messages_members.cc \ messages_members.cc \
monetary_members.cc \ monetary_members.cc \
numeric_members.cc \ numeric_members.cc \
...@@ -46,12 +44,6 @@ codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC) ...@@ -46,12 +44,6 @@ codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC)
collate_members.cc: ${glibcxx_srcdir}/$(CCOLLATE_CC) collate_members.cc: ${glibcxx_srcdir}/$(CCOLLATE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCOLLATE_CC) . || true $(LN_S) ${glibcxx_srcdir}/$(CCOLLATE_CC) . || true
ctype_configure_char.cc: ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc
$(LN_S) ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc . || true
ctype_members.cc: ${glibcxx_srcdir}/$(CCTYPE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCTYPE_CC) . || true
messages_members.cc: ${glibcxx_srcdir}/$(CMESSAGES_CC) messages_members.cc: ${glibcxx_srcdir}/$(CMESSAGES_CC)
$(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_CC) . || true $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_CC) . || true
...@@ -104,7 +96,6 @@ sources = \ ...@@ -104,7 +96,6 @@ sources = \
mt_allocator.cc \ mt_allocator.cc \
codecvt.cc \ codecvt.cc \
complex_io.cc \ complex_io.cc \
ctype.cc \
globals_io.cc \ globals_io.cc \
hash_tr1.cc \ hash_tr1.cc \
hashtable_tr1.cc \ hashtable_tr1.cc \
......
...@@ -68,8 +68,8 @@ CONFIG_CLEAN_VPATH_FILES = ...@@ -68,8 +68,8 @@ CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES)
libc__98convenience_la_LIBADD = libc__98convenience_la_LIBADD =
am__objects_1 = atomicity.lo codecvt_members.lo collate_members.lo \ am__objects_1 = atomicity.lo codecvt_members.lo collate_members.lo \
ctype_configure_char.lo ctype_members.lo messages_members.lo \ messages_members.lo monetary_members.lo numeric_members.lo \
monetary_members.lo numeric_members.lo time_members.lo time_members.lo
@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = allocator-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = allocator-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ concept-inst.lo ext-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ concept-inst.lo ext-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst.lo misc-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst.lo misc-inst.lo \
...@@ -78,7 +78,7 @@ am__objects_3 = parallel_settings.lo ...@@ -78,7 +78,7 @@ am__objects_3 = parallel_settings.lo
am__objects_4 = basic_file.lo c++locale.lo $(am__objects_2) \ am__objects_4 = basic_file.lo c++locale.lo $(am__objects_2) \
$(am__objects_3) $(am__objects_3)
am__objects_5 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \ am__objects_5 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
codecvt.lo complex_io.lo ctype.lo globals_io.lo hash_tr1.lo \ codecvt.lo complex_io.lo globals_io.lo hash_tr1.lo \
hashtable_tr1.lo ios_failure.lo ios_init.lo ios_locale.lo \ hashtable_tr1.lo ios_failure.lo ios_init.lo ios_locale.lo \
list.lo list-aux.lo list-aux-2.lo list_associated.lo \ list.lo list-aux.lo list-aux-2.lo list_associated.lo \
list_associated-2.lo locale.lo locale_init.lo locale_facets.lo \ list_associated-2.lo locale.lo locale_init.lo locale_facets.lo \
...@@ -328,8 +328,6 @@ host_sources = \ ...@@ -328,8 +328,6 @@ host_sources = \
atomicity.cc \ atomicity.cc \
codecvt_members.cc \ codecvt_members.cc \
collate_members.cc \ collate_members.cc \
ctype_configure_char.cc \
ctype_members.cc \
messages_members.cc \ messages_members.cc \
monetary_members.cc \ monetary_members.cc \
numeric_members.cc \ numeric_members.cc \
...@@ -364,7 +362,6 @@ sources = \ ...@@ -364,7 +362,6 @@ sources = \
mt_allocator.cc \ mt_allocator.cc \
codecvt.cc \ codecvt.cc \
complex_io.cc \ complex_io.cc \
ctype.cc \
globals_io.cc \ globals_io.cc \
hash_tr1.cc \ hash_tr1.cc \
hashtable_tr1.cc \ hashtable_tr1.cc \
...@@ -699,12 +696,6 @@ codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC) ...@@ -699,12 +696,6 @@ codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC)
collate_members.cc: ${glibcxx_srcdir}/$(CCOLLATE_CC) collate_members.cc: ${glibcxx_srcdir}/$(CCOLLATE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCOLLATE_CC) . || true $(LN_S) ${glibcxx_srcdir}/$(CCOLLATE_CC) . || true
ctype_configure_char.cc: ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc
$(LN_S) ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char.cc . || true
ctype_members.cc: ${glibcxx_srcdir}/$(CCTYPE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCTYPE_CC) . || true
messages_members.cc: ${glibcxx_srcdir}/$(CMESSAGES_CC) messages_members.cc: ${glibcxx_srcdir}/$(CMESSAGES_CC)
$(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_CC) . || true $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_CC) . || true
......
// Copyright (C) 2014 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
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// { dg-options " -std=gnu++11 " }
// 22.3.3.1 Character classification [classification]
#include <locale>
#include <testsuite_hooks.h>
typedef char char_type;
void
test01()
{
bool test __attribute__((unused)) = true;
VERIFY( std::isblank(' ', std::locale::classic()) );
VERIFY( std::isblank('\t', std::locale::classic()) );
}
void
test02()
{
#ifdef _GLIBCXX_USE_WCHAR_T
bool test __attribute__((unused)) = true;
VERIFY( std::isblank(L' ', std::locale::classic()) );
VERIFY( std::isblank(L'\t', std::locale::classic()) );
#endif
}
int main()
{
test01();
test02();
}
// Copyright (C) 2014 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
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// { dg-options "-std=gnu++11" }
// { dg-do compile }
#include <locale>
void
test01()
{
const std::ctype_base::mask* blank __attribute__((unused));
blank = &std::ctype_base::blank;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment