mirror of git://gcc.gnu.org/git/gcc.git
configure.host: Use config/os/mingw32-w64 instead of config/os/mingw32 if vendor key is "w64".
2011-10-14 Jonathan Yong <jon_y@users.sourceforge.net> * configure.host: Use config/os/mingw32-w64 instead of config/os/mingw32 if vendor key is "w64". * config/os/mingw32-w64: Duplicate from config/os/mingw32. * config/os/mingw32-w64/os_defines.h: Enable _GLIBCXX_FULLY_DYNAMIC_STRING if undefined. * acinclude.m4: Set fully-dynamic-string to 1 when enabled, 0 when disabled or undefined if unset by user. * include/bits/basic_string.h: Check if _GLIBCXX_FULLY_DYNAMIC_STRING is set to 0 instead of undefined. include/bits/basic_string.tcc: Likewise. * configure: Regenerated. * config.h.in: Likewise. From-SVN: r179961
This commit is contained in:
parent
4fbe3b8a2b
commit
d7a3ef9794
|
@ -1,3 +1,18 @@
|
||||||
|
2011-10-14 Jonathan Yong <jon_y@users.sourceforge.net>
|
||||||
|
|
||||||
|
* configure.host: Use config/os/mingw32-w64 instead of
|
||||||
|
config/os/mingw32 if vendor key is "w64".
|
||||||
|
* config/os/mingw32-w64: Duplicate from config/os/mingw32.
|
||||||
|
* config/os/mingw32-w64/os_defines.h: Enable
|
||||||
|
_GLIBCXX_FULLY_DYNAMIC_STRING if undefined.
|
||||||
|
* acinclude.m4: Set fully-dynamic-string to 1 when enabled,
|
||||||
|
0 when disabled or undefined if unset by user.
|
||||||
|
* include/bits/basic_string.h: Check if
|
||||||
|
_GLIBCXX_FULLY_DYNAMIC_STRING is set to 0 instead of undefined.
|
||||||
|
include/bits/basic_string.tcc: Likewise.
|
||||||
|
* configure: Regenerated.
|
||||||
|
* config.h.in: Likewise.
|
||||||
|
|
||||||
2011-10-13 Paolo Carlini <paolo.carlini@oracle.com>
|
2011-10-13 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR libstdc++/50714
|
PR libstdc++/50714
|
||||||
|
|
|
@ -564,17 +564,21 @@ dnl be turned on, that does not put empty objects in per-process static
|
||||||
dnl memory (mostly useful together with shared memory allocators, see PR
|
dnl memory (mostly useful together with shared memory allocators, see PR
|
||||||
dnl libstdc++/16612 for details).
|
dnl libstdc++/16612 for details).
|
||||||
dnl
|
dnl
|
||||||
dnl --enable-fully-dynamic-string defines _GLIBCXX_FULLY_DYNAMIC_STRING
|
dnl --enable-fully-dynamic-string defines _GLIBCXX_FULLY_DYNAMIC_STRING to 1
|
||||||
dnl --disable-fully-dynamic-string leaves _GLIBCXX_FULLY_DYNAMIC_STRING undefined
|
dnl --disable-fully-dynamic-string defines _GLIBCXX_FULLY_DYNAMIC_STRING to 0
|
||||||
|
dnl otherwise undefined
|
||||||
dnl + Usage: GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING[(DEFAULT)]
|
dnl + Usage: GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING[(DEFAULT)]
|
||||||
dnl Where DEFAULT is either `yes' or `no'.
|
dnl Where DEFAULT is either `yes' or `no'.
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN([GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING], [
|
AC_DEFUN([GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING], [
|
||||||
GLIBCXX_ENABLE(fully-dynamic-string,$1,,[do not put empty strings in per-process static memory])
|
GLIBCXX_ENABLE(fully-dynamic-string,$1,,[do not put empty strings in per-process static memory])
|
||||||
if test $enable_fully_dynamic_string = yes; then
|
if test $enable_fully_dynamic_string = yes; then
|
||||||
AC_DEFINE(_GLIBCXX_FULLY_DYNAMIC_STRING, 1,
|
enable_fully_dynamic_string_def=1
|
||||||
[Define if a fully dynamic basic_string is wanted.])
|
else
|
||||||
|
enable_fully_dynamic_string_def=0
|
||||||
fi
|
fi
|
||||||
|
AC_DEFINE_UNQUOTED([_GLIBCXX_FULLY_DYNAMIC_STRING], [${enable_fully_dynamic_string_def}],
|
||||||
|
[Define to 1 if a fully dynamic basic_string is wanted, 0 to disable, undefined for platform defaults])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -707,7 +707,8 @@
|
||||||
/* Define to use concept checking code from the boost libraries. */
|
/* Define to use concept checking code from the boost libraries. */
|
||||||
#undef _GLIBCXX_CONCEPT_CHECKS
|
#undef _GLIBCXX_CONCEPT_CHECKS
|
||||||
|
|
||||||
/* Define if a fully dynamic basic_string is wanted. */
|
/* Define to 1 if a fully dynamic basic_string is wanted, 0 to disable,
|
||||||
|
undefined for platform defaults */
|
||||||
#undef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#undef _GLIBCXX_FULLY_DYNAMIC_STRING
|
||||||
|
|
||||||
/* Define if gthreads library is available. */
|
/* Define if gthreads library is available. */
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 1997, 1998, 1999, 2007, 2009 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//
|
||||||
|
// ISO C++ 14882: 22.1 Locales
|
||||||
|
//
|
||||||
|
|
||||||
|
// We don't use the C-locale masks defined in mingw/include/ctype.h
|
||||||
|
// because those masks do not conform to the requirements of 22.2.1.
|
||||||
|
// In particular, a separate 'print' bitmask does not exist (isprint(c)
|
||||||
|
// relies on a combination of flags) and the '_ALPHA' mask is also a
|
||||||
|
// combination of simple bitmasks. Thus, we define libstdc++-specific
|
||||||
|
// masks here, based on the generic masks, and the corresponding
|
||||||
|
// classic_table in ctype_noninline.h.
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
/// @brief Base class for ctype.
|
||||||
|
struct ctype_base
|
||||||
|
{
|
||||||
|
// Non-standard typedefs.
|
||||||
|
typedef const int* __to_type;
|
||||||
|
|
||||||
|
// NB: Offsets into ctype<char>::_M_table force a particular size
|
||||||
|
// on the mask type. Because of this, we don't use an enum.
|
||||||
|
typedef unsigned short mask;
|
||||||
|
static const mask upper = 1 << 0;
|
||||||
|
static const mask lower = 1 << 1;
|
||||||
|
static const mask alpha = 1 << 2;
|
||||||
|
static const mask digit = 1 << 3;
|
||||||
|
static const mask xdigit = 1 << 4;
|
||||||
|
static const mask space = 1 << 5;
|
||||||
|
static const mask print = 1 << 6;
|
||||||
|
static const mask graph = (1 << 2) | (1 << 3) | (1 << 9); // alnum|punct
|
||||||
|
static const mask cntrl = 1 << 8;
|
||||||
|
static const mask punct = 1 << 9;
|
||||||
|
static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit
|
||||||
|
};
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
|
@ -0,0 +1,243 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2011 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file ctype_configure_char.cc */
|
||||||
|
|
||||||
|
//
|
||||||
|
// ISO C++ 14882: 22.1 Locales
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <locale>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
// The classic table used in libstdc++ is *not* the C _ctype table
|
||||||
|
// used by mscvrt, but is based on the ctype masks defined for libstdc++
|
||||||
|
// in ctype_base.h.
|
||||||
|
|
||||||
|
const ctype_base::mask*
|
||||||
|
ctype<char>::classic_table() throw()
|
||||||
|
{
|
||||||
|
static const ctype_base::mask _S_classic_table[256] =
|
||||||
|
{
|
||||||
|
cntrl /* null */,
|
||||||
|
cntrl /* ^A */,
|
||||||
|
cntrl /* ^B */,
|
||||||
|
cntrl /* ^C */,
|
||||||
|
cntrl /* ^D */,
|
||||||
|
cntrl /* ^E */,
|
||||||
|
cntrl /* ^F */,
|
||||||
|
cntrl /* ^G */,
|
||||||
|
cntrl /* ^H */,
|
||||||
|
ctype_base::mask(space | cntrl) /* tab */,
|
||||||
|
ctype_base::mask(space | cntrl) /* LF */,
|
||||||
|
ctype_base::mask(space | cntrl) /* ^K */,
|
||||||
|
ctype_base::mask(space | cntrl) /* FF */,
|
||||||
|
ctype_base::mask(space | cntrl) /* ^M */,
|
||||||
|
cntrl /* ^N */,
|
||||||
|
cntrl /* ^O */,
|
||||||
|
cntrl /* ^P */,
|
||||||
|
cntrl /* ^Q */,
|
||||||
|
cntrl /* ^R */,
|
||||||
|
cntrl /* ^S */,
|
||||||
|
cntrl /* ^T */,
|
||||||
|
cntrl /* ^U */,
|
||||||
|
cntrl /* ^V */,
|
||||||
|
cntrl /* ^W */,
|
||||||
|
cntrl /* ^X */,
|
||||||
|
cntrl /* ^Y */,
|
||||||
|
cntrl /* ^Z */,
|
||||||
|
cntrl /* esc */,
|
||||||
|
cntrl /* ^\ */,
|
||||||
|
cntrl /* ^] */,
|
||||||
|
cntrl /* ^^ */,
|
||||||
|
cntrl /* ^_ */,
|
||||||
|
ctype_base::mask(space | 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) /* % */,
|
||||||
|
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) /* + */,
|
||||||
|
ctype_base::mask(punct | print) /* , */,
|
||||||
|
ctype_base::mask(punct | print) /* - */,
|
||||||
|
ctype_base::mask(punct | print) /* . */,
|
||||||
|
ctype_base::mask(punct | print) /* / */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 0 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 1 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 2 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 3 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 4 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 5 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 6 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 7 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 8 */,
|
||||||
|
ctype_base::mask(digit | xdigit | print) /* 9 */,
|
||||||
|
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) /* ? */,
|
||||||
|
ctype_base::mask(punct | print) /* ! */,
|
||||||
|
ctype_base::mask(alpha | upper | xdigit | print) /* A */,
|
||||||
|
ctype_base::mask(alpha | upper | xdigit | print) /* B */,
|
||||||
|
ctype_base::mask(alpha | upper | xdigit | print) /* C */,
|
||||||
|
ctype_base::mask(alpha | upper | xdigit | print) /* D */,
|
||||||
|
ctype_base::mask(alpha | upper | xdigit | print) /* E */,
|
||||||
|
ctype_base::mask(alpha | upper | xdigit | print) /* F */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* G */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* H */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* I */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* J */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* K */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* L */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* M */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* N */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* O */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* P */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* Q */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* R */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* S */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* T */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* U */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* V */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* W */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* X */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* Y */,
|
||||||
|
ctype_base::mask(alpha | upper | print) /* Z */,
|
||||||
|
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) /* ` */,
|
||||||
|
ctype_base::mask(alpha | lower | xdigit | print) /* a */,
|
||||||
|
ctype_base::mask(alpha | lower | xdigit | print) /* b */,
|
||||||
|
ctype_base::mask(alpha | lower | xdigit | print) /* c */,
|
||||||
|
ctype_base::mask(alpha | lower | xdigit | print) /* d */,
|
||||||
|
ctype_base::mask(alpha | lower | xdigit | print) /* e */,
|
||||||
|
ctype_base::mask(alpha | lower | xdigit | print) /* f */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* g */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* h */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* i */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* j */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* k */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* l */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* m */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* n */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* o */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* p */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* q */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* r */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* s */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* t */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* u */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* v */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* w */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* x */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* y */,
|
||||||
|
ctype_base::mask(alpha | lower | print) /* x */,
|
||||||
|
ctype_base::mask(punct | print) /* { */,
|
||||||
|
ctype_base::mask(punct | print) /* | */,
|
||||||
|
ctype_base::mask(punct | print) /* } */,
|
||||||
|
ctype_base::mask(punct | print) /* ~ */,
|
||||||
|
cntrl /* del (0x7f)*/,
|
||||||
|
/* The next 128 entries are all 0. */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
};
|
||||||
|
return _S_classic_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||||
|
size_t __refs)
|
||||||
|
: facet(__refs), _M_del(__table != 0 && __del),
|
||||||
|
_M_toupper(NULL), _M_tolower(NULL),
|
||||||
|
_M_table(__table ? __table : classic_table())
|
||||||
|
{
|
||||||
|
memset(_M_widen, 0, sizeof(_M_widen));
|
||||||
|
_M_widen_ok = 0;
|
||||||
|
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||||
|
_M_narrow_ok = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||||
|
: facet(__refs), _M_del(__table != 0 && __del),
|
||||||
|
_M_toupper(NULL), _M_tolower(NULL),
|
||||||
|
_M_table(__table ? __table : classic_table())
|
||||||
|
{
|
||||||
|
memset(_M_widen, 0, sizeof(_M_widen));
|
||||||
|
_M_widen_ok = 0;
|
||||||
|
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||||
|
_M_narrow_ok = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
char
|
||||||
|
ctype<char>::do_toupper(char __c) const
|
||||||
|
{ return (this->is(ctype_base::lower, __c) ? (__c - 'a' + 'A') : __c); }
|
||||||
|
|
||||||
|
const char*
|
||||||
|
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||||
|
{
|
||||||
|
while (__low < __high)
|
||||||
|
{
|
||||||
|
*__low = this->do_toupper(*__low);
|
||||||
|
++__low;
|
||||||
|
}
|
||||||
|
return __high;
|
||||||
|
}
|
||||||
|
|
||||||
|
char
|
||||||
|
ctype<char>::do_tolower(char __c) const
|
||||||
|
{ return (this->is(ctype_base::upper, __c) ? (__c - 'A' + 'a') : __c); }
|
||||||
|
|
||||||
|
const char*
|
||||||
|
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||||
|
{
|
||||||
|
while (__low < __high)
|
||||||
|
{
|
||||||
|
*__low = this->do_tolower(*__low);
|
||||||
|
++__low;
|
||||||
|
}
|
||||||
|
return __high;
|
||||||
|
}
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
|
@ -0,0 +1,75 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2000, 2009, 2010 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file bits/ctype_inline.h
|
||||||
|
* This is an internal header file, included by other library headers.
|
||||||
|
* Do not attempt to use it directly. @headername{locale}
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// ISO C++ 14882: 22.1 Locales
|
||||||
|
//
|
||||||
|
|
||||||
|
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||||
|
// functions go in ctype.cc
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
bool
|
||||||
|
ctype<char>::
|
||||||
|
is(mask __m, char __c) const
|
||||||
|
{ return (_M_table[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[static_cast<unsigned char>(*__low++)];
|
||||||
|
return __high;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char*
|
||||||
|
ctype<char>::
|
||||||
|
scan_is(mask __m, const char* __low, const char* __high) const
|
||||||
|
{
|
||||||
|
while (__low < __high && !this->is(__m, *__low))
|
||||||
|
++__low;
|
||||||
|
return __low;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char*
|
||||||
|
ctype<char>::
|
||||||
|
scan_not(mask __m, const char* __low, const char* __high) const
|
||||||
|
{
|
||||||
|
while (__low < __high && this->is(__m, *__low) != 0)
|
||||||
|
++__low;
|
||||||
|
return __low;
|
||||||
|
}
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
|
@ -0,0 +1,142 @@
|
||||||
|
// Specific definitions for mingw32 platform -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2007, 2008, 2009, 2010, 2011 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file bits/error_constants.h
|
||||||
|
* This is an internal header file, included by other library headers.
|
||||||
|
* Do not attempt to use it directly. @headername{system_error}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _GLIBCXX_ERROR_CONSTANTS
|
||||||
|
# define _GLIBCXX_ERROR_CONSTANTS
|
||||||
|
|
||||||
|
#include <bits/c++config.h>
|
||||||
|
#include <cerrno>
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
// Most of the commented-out error codes are socket-related and could be
|
||||||
|
// replaced by Winsock WSA-prefixed equivalents.
|
||||||
|
enum class errc
|
||||||
|
{
|
||||||
|
// address_family_not_supported = EAFNOSUPPORT,
|
||||||
|
// address_in_use = EADDRINUSE,
|
||||||
|
// address_not_available = EADDRNOTAVAIL,
|
||||||
|
// already_connected = EISCONN,
|
||||||
|
argument_list_too_long = E2BIG,
|
||||||
|
argument_out_of_domain = EDOM,
|
||||||
|
bad_address = EFAULT,
|
||||||
|
bad_file_descriptor = EBADF,
|
||||||
|
// bad_message = EBADMSG,
|
||||||
|
broken_pipe = EPIPE,
|
||||||
|
// connection_aborted = ECONNABORTED,
|
||||||
|
// connection_already_in_progress = EALREADY,
|
||||||
|
// connection_refused = ECONNREFUSED,
|
||||||
|
// connection_reset = ECONNRESET,
|
||||||
|
// cross_device_link = EXDEV,
|
||||||
|
// destination_address_required = EDESTADDRREQ,
|
||||||
|
device_or_resource_busy = EBUSY,
|
||||||
|
directory_not_empty = ENOTEMPTY,
|
||||||
|
executable_format_error = ENOEXEC,
|
||||||
|
file_exists = EEXIST,
|
||||||
|
file_too_large = EFBIG,
|
||||||
|
filename_too_long = ENAMETOOLONG,
|
||||||
|
function_not_supported = ENOSYS,
|
||||||
|
// host_unreachable = EHOSTUNREACH,
|
||||||
|
// identifier_removed = EIDRM,
|
||||||
|
illegal_byte_sequence = EILSEQ,
|
||||||
|
inappropriate_io_control_operation = ENOTTY,
|
||||||
|
interrupted = EINTR,
|
||||||
|
invalid_argument = EINVAL,
|
||||||
|
invalid_seek = ESPIPE,
|
||||||
|
io_error = EIO,
|
||||||
|
is_a_directory = EISDIR,
|
||||||
|
// message_size = EMSGSIZE,
|
||||||
|
// network_down = ENETDOWN,
|
||||||
|
// network_reset = ENETRESET,
|
||||||
|
// network_unreachable = ENETUNREACH,
|
||||||
|
// no_buffer_space = ENOBUFS,
|
||||||
|
#ifdef _GLIBCXX_HAVE_ECHILD
|
||||||
|
no_child_process = ECHILD,
|
||||||
|
#endif
|
||||||
|
// no_link = ENOLINK,
|
||||||
|
no_lock_available = ENOLCK,
|
||||||
|
// no_message_available = ENODATA,
|
||||||
|
// no_message = ENOMSG,
|
||||||
|
// no_protocol_option = ENOPROTOOPT,
|
||||||
|
#ifdef _GLIBCXX_HAVE_ENOSPC
|
||||||
|
no_space_on_device = ENOSPC,
|
||||||
|
#endif
|
||||||
|
// no_stream_resources = ENOSR,
|
||||||
|
no_such_device_or_address = ENXIO,
|
||||||
|
no_such_device = ENODEV,
|
||||||
|
no_such_file_or_directory = ENOENT,
|
||||||
|
no_such_process = ESRCH,
|
||||||
|
not_a_directory = ENOTDIR,
|
||||||
|
// not_a_socket = ENOTSOCK,
|
||||||
|
// not_a_stream = ENOSTR,
|
||||||
|
// not_connected = ENOTCONN,
|
||||||
|
not_enough_memory = ENOMEM,
|
||||||
|
#ifdef _GLIBCXX_HAVE_ENOTSUP
|
||||||
|
not_supported = ENOTSUP,
|
||||||
|
#endif
|
||||||
|
// operation_canceled = ECANCELED,
|
||||||
|
// operation_in_progress = EINPROGRESS,
|
||||||
|
#ifdef _GLIBCXX_HAVE_EPERM
|
||||||
|
operation_not_permitted = EPERM,
|
||||||
|
#endif
|
||||||
|
// operation_not_supported = EOPNOTSUPP,
|
||||||
|
#ifdef _GLIBCXX_HAVE_EWOULDBLOCK
|
||||||
|
operation_would_block = EWOULDBLOCK,
|
||||||
|
#endif
|
||||||
|
// owner_dead = EOWNERDEAD,
|
||||||
|
permission_denied = EACCES,
|
||||||
|
// protocol_error = EPROTO,
|
||||||
|
// protocol_not_supported = EPROTONOSUPPORT,
|
||||||
|
read_only_file_system = EROFS,
|
||||||
|
resource_deadlock_would_occur = EDEADLK,
|
||||||
|
resource_unavailable_try_again = EAGAIN,
|
||||||
|
result_out_of_range = ERANGE,
|
||||||
|
// state_not_recoverable = ENOTRECOVERABLE,
|
||||||
|
// stream_timeout = ETIME,
|
||||||
|
// text_file_busy = ETXTBSY,
|
||||||
|
#ifdef _GLIBCXX_HAVE_ETIMEDOUT
|
||||||
|
timed_out = ETIMEDOUT,
|
||||||
|
#endif
|
||||||
|
too_many_files_open_in_system = ENFILE,
|
||||||
|
too_many_files_open = EMFILE,
|
||||||
|
too_many_links = EMLINK
|
||||||
|
// too_many_symbolic_link_levels = ELOOP,
|
||||||
|
#ifdef _GLIBCXX_HAVE_EOVERFLOW
|
||||||
|
,
|
||||||
|
value_too_large = EOVERFLOW
|
||||||
|
#endif
|
||||||
|
// wrong_protocol_type = EPROTOTYPE
|
||||||
|
};
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,68 @@
|
||||||
|
// Specific definitions for generic platforms -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||||
|
// 2009, 2010 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file bits/os_defines.h
|
||||||
|
* This is an internal header file, included by other library headers.
|
||||||
|
* Do not attempt to use it directly. @headername{iosfwd}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _GLIBCXX_OS_DEFINES
|
||||||
|
# define _GLIBCXX_OS_DEFINES
|
||||||
|
|
||||||
|
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||||
|
// file will come before all others.
|
||||||
|
|
||||||
|
// Define as 0, if you want, to enable inlining of gthread functions.
|
||||||
|
// By default, don't pollute libstdc++ with win32api names.
|
||||||
|
#if !defined (__GTHREAD_HIDE_WIN32API)
|
||||||
|
# define __GTHREAD_HIDE_WIN32API 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Don't let win32api windef.h define min and max as macros
|
||||||
|
// if included after c++config.h.
|
||||||
|
#undef NOMINMAX
|
||||||
|
#define NOMINMAX 1
|
||||||
|
|
||||||
|
#if defined (_GLIBCXX_DLL)
|
||||||
|
#define _GLIBCXX_PSEUDO_VISIBILITY_default __attribute__ ((__dllimport__))
|
||||||
|
#else
|
||||||
|
#define _GLIBCXX_PSEUDO_VISIBILITY_default
|
||||||
|
#endif
|
||||||
|
#define _GLIBCXX_PSEUDO_VISIBILITY_hidden
|
||||||
|
|
||||||
|
#define _GLIBCXX_PSEUDO_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY_ ## V
|
||||||
|
|
||||||
|
// See libstdc++/20806.
|
||||||
|
#define _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM 1
|
||||||
|
|
||||||
|
// See libstdc++/37522.
|
||||||
|
#define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1
|
||||||
|
|
||||||
|
// See libstdc++/43738
|
||||||
|
// On native windows targets there is no ioctl function. And the existing
|
||||||
|
// ioctlsocket function doesn't work for normal file-descriptors.
|
||||||
|
#define _GLIBCXX_NO_IOCTL 1
|
||||||
|
|
||||||
|
#endif
|
|
@ -17240,11 +17240,16 @@ fi
|
||||||
|
|
||||||
|
|
||||||
if test $enable_fully_dynamic_string = yes; then
|
if test $enable_fully_dynamic_string = yes; then
|
||||||
|
enable_fully_dynamic_string_def=1
|
||||||
$as_echo "#define _GLIBCXX_FULLY_DYNAMIC_STRING 1" >>confdefs.h
|
else
|
||||||
|
enable_fully_dynamic_string_def=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define _GLIBCXX_FULLY_DYNAMIC_STRING ${enable_fully_dynamic_string_def}
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --enable-extern-template was given.
|
# Check whether --enable-extern-template was given.
|
||||||
|
|
|
@ -260,8 +260,16 @@ case "${host_os}" in
|
||||||
atomic_word_dir=os/irix
|
atomic_word_dir=os/irix
|
||||||
;;
|
;;
|
||||||
mingw32*)
|
mingw32*)
|
||||||
os_include_dir="os/mingw32"
|
case "$host" in
|
||||||
error_constants_dir="os/mingw32"
|
*-w64-*)
|
||||||
|
os_include_dir="os/mingw32-w64"
|
||||||
|
error_constants_dir="os/mingw32-w64"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os_include_dir="os/mingw32"
|
||||||
|
error_constants_dir="os/mingw32"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"
|
OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"
|
||||||
;;
|
;;
|
||||||
netbsd*)
|
netbsd*)
|
||||||
|
|
|
@ -201,7 +201,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
void
|
void
|
||||||
_M_set_length_and_sharable(size_type __n)
|
_M_set_length_and_sharable(size_type __n)
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (__builtin_expect(this != &_S_empty_rep(), false))
|
if (__builtin_expect(this != &_S_empty_rep(), false))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
@ -231,7 +231,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
void
|
void
|
||||||
_M_dispose(const _Alloc& __a)
|
_M_dispose(const _Alloc& __a)
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (__builtin_expect(this != &_S_empty_rep(), false))
|
if (__builtin_expect(this != &_S_empty_rep(), false))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
@ -252,7 +252,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
_CharT*
|
_CharT*
|
||||||
_M_refcopy() throw()
|
_M_refcopy() throw()
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (__builtin_expect(this != &_S_empty_rep(), false))
|
if (__builtin_expect(this != &_S_empty_rep(), false))
|
||||||
#endif
|
#endif
|
||||||
__gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
|
__gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
|
||||||
|
@ -430,7 +430,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
* @brief Default constructor creates an empty string.
|
* @brief Default constructor creates an empty string.
|
||||||
*/
|
*/
|
||||||
basic_string()
|
basic_string()
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
: _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
|
: _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
|
||||||
#else
|
#else
|
||||||
: _M_dataplus(_S_construct(size_type(), _CharT(), _Alloc()), _Alloc()){ }
|
: _M_dataplus(_S_construct(size_type(), _CharT(), _Alloc()), _Alloc()){ }
|
||||||
|
@ -502,7 +502,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
basic_string(basic_string&& __str) noexcept
|
basic_string(basic_string&& __str) noexcept
|
||||||
: _M_dataplus(__str._M_dataplus)
|
: _M_dataplus(__str._M_dataplus)
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
__str._M_data(_S_empty_rep()._M_refdata());
|
__str._M_data(_S_empty_rep()._M_refdata());
|
||||||
#else
|
#else
|
||||||
__str._M_data(_S_construct(size_type(), _CharT(), get_allocator()));
|
__str._M_data(_S_construct(size_type(), _CharT(), get_allocator()));
|
||||||
|
|
|
@ -80,7 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
|
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
|
||||||
input_iterator_tag)
|
input_iterator_tag)
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (__beg == __end && __a == _Alloc())
|
if (__beg == __end && __a == _Alloc())
|
||||||
return _S_empty_rep()._M_refdata();
|
return _S_empty_rep()._M_refdata();
|
||||||
#endif
|
#endif
|
||||||
|
@ -126,7 +126,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
|
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
|
||||||
forward_iterator_tag)
|
forward_iterator_tag)
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (__beg == __end && __a == _Alloc())
|
if (__beg == __end && __a == _Alloc())
|
||||||
return _S_empty_rep()._M_refdata();
|
return _S_empty_rep()._M_refdata();
|
||||||
#endif
|
#endif
|
||||||
|
@ -154,7 +154,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
basic_string<_CharT, _Traits, _Alloc>::
|
basic_string<_CharT, _Traits, _Alloc>::
|
||||||
_S_construct(size_type __n, _CharT __c, const _Alloc& __a)
|
_S_construct(size_type __n, _CharT __c, const _Alloc& __a)
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (__n == 0 && __a == _Alloc())
|
if (__n == 0 && __a == _Alloc())
|
||||||
return _S_empty_rep()._M_refdata();
|
return _S_empty_rep()._M_refdata();
|
||||||
#endif
|
#endif
|
||||||
|
@ -456,7 +456,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
basic_string<_CharT, _Traits, _Alloc>::
|
basic_string<_CharT, _Traits, _Alloc>::
|
||||||
_M_leak_hard()
|
_M_leak_hard()
|
||||||
{
|
{
|
||||||
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
|
#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
|
||||||
if (_M_rep() == &_S_empty_rep())
|
if (_M_rep() == &_S_empty_rep())
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue