re PR libstdc++/16896 (Use of non-reserved names in stl_list.h)

2010-02-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/16896
	* include/bits/stl_list.h (_List_node_base::transfer): Rename
	to _M_transfer.
	(_List_node_base::reverse): Rename to _M_reverse.
	(_List_node_base::hook): Rename to _M_hook.
	(_List_node_base::unhook): Rename to _M_unhook; adjust callers.
	* include/bits/list.tcc: Adjust callers.
	* src/list.cc: Adjust.
	* src/compatibility.cc: Likewise.
	* src/compatibility-list.cc: New.
	* src/compatibility-debug_list.cc: Likewise.
	* src/compatibility-parallel_list.cc: Likewise.
	* src/Makefile.am: Add.
	* src/Makefile.in: Regenerate.
	* config/abi/pre/gnu.ver: Export _M_* symbols.

	* src/hash.cc: Rename to hash-aux.cc.
	* src/compatibility-ldbl.cc: Adjust.
	* src/compatibility-c++0x.cc: Likewise.
	* src/hash_tr1.cc: Likewise.

	* src/hashtable.cc: Rename to hashtable-aux.cc.
	* src/hashtable_c++0x.cc: Adjust.
	* src/hashtable_tr1.cc: Likewise.

	* src/limits_c++0x.cc: Fold...
	* src/limits.cc... here.

From-SVN: r156578
This commit is contained in:
Paolo Carlini 2010-02-07 18:36:48 +00:00 committed by Paolo Carlini
parent 0e7e3cb836
commit 240c7f7f57
20 changed files with 315 additions and 132 deletions

View File

@ -1,3 +1,33 @@
2010-02-07 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/16896
* include/bits/stl_list.h (_List_node_base::transfer): Rename
to _M_transfer.
(_List_node_base::reverse): Rename to _M_reverse.
(_List_node_base::hook): Rename to _M_hook.
(_List_node_base::unhook): Rename to _M_unhook; adjust callers.
* include/bits/list.tcc: Adjust callers.
* src/list.cc: Adjust.
* src/compatibility.cc: Likewise.
* src/compatibility-list.cc: New.
* src/compatibility-debug_list.cc: Likewise.
* src/compatibility-parallel_list.cc: Likewise.
* src/Makefile.am: Add.
* src/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Export _M_* symbols.
* src/hash.cc: Rename to hash-aux.cc.
* src/compatibility-ldbl.cc: Adjust.
* src/compatibility-c++0x.cc: Likewise.
* src/hash_tr1.cc: Likewise.
* src/hashtable.cc: Rename to hashtable-aux.cc.
* src/hashtable_c++0x.cc: Adjust.
* src/hashtable_tr1.cc: Likewise.
* src/limits_c++0x.cc: Fold...
* src/limits.cc... here.
2010-02-07 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_pair.h (pair<>::pair(_U1&&, const _T2&),

View File

@ -1113,6 +1113,21 @@ GLIBCXX_3.4.14 {
# std::time_get::_M_extract_wday_or_month
_ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE24_M_extract_wday_or_month*;
# libstdc++/16896
_ZNSt15_List_node_base7_M_hook*;
_ZNSt15_List_node_base9_M_unhookEv;
_ZNSt15_List_node_base10_M_reverseEv;
_ZNSt15_List_node_base11_M_transfer*;
_ZNSt6__norm15_List_node_base7_M_hook*;
_ZNSt6__norm15_List_node_base9_M_unhookEv;
_ZNSt6__norm15_List_node_base10_M_reverseEv;
_ZNSt6__norm15_List_node_base11_M_transfer*;
_ZNSt9__cxx199815_List_node_base7_M_hook*;
_ZNSt9__cxx199815_List_node_base9_M_unhookEv;
_ZNSt9__cxx199815_List_node_base10_M_reverseEv;
_ZNSt9__cxx199815_List_node_base11_M_transfer*;
} GLIBCXX_3.4.13;
# Symbols in the support library (libsupc++) have their own tag.

View File

@ -1,6 +1,6 @@
// List implementation (out of line) -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// Copyright (C) 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
@ -87,7 +87,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
emplace(iterator __position, _Args&&... __args)
{
_Node* __tmp = _M_create_node(std::forward<_Args>(__args)...);
__tmp->hook(__position._M_node);
__tmp->_M_hook(__position._M_node);
return iterator(__tmp);
}
#endif
@ -98,7 +98,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
insert(iterator __position, const value_type& __x)
{
_Node* __tmp = _M_create_node(__x);
__tmp->hook(__position._M_node);
__tmp->_M_hook(__position._M_node);
return iterator(__tmp);
}

View File

@ -77,17 +77,17 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
swap(_List_node_base& __x, _List_node_base& __y) throw ();
void
transfer(_List_node_base * const __first,
_List_node_base * const __last) throw ();
_M_transfer(_List_node_base * const __first,
_List_node_base * const __last) throw ();
void
reverse() throw ();
_M_reverse() throw ();
void
hook(_List_node_base * const __position) throw ();
_M_hook(_List_node_base * const __position) throw ();
void
unhook() throw ();
_M_unhook() throw ();
};
/// An actual node in the %list.
@ -1345,7 +1345,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
*/
void
reverse()
{ this->_M_impl._M_node.reverse(); }
{ this->_M_impl._M_node._M_reverse(); }
/**
* @brief Sort the elements.
@ -1424,7 +1424,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
// Moves the elements from [first,last) before position.
void
_M_transfer(iterator __position, iterator __first, iterator __last)
{ __position._M_node->transfer(__first._M_node, __last._M_node); }
{ __position._M_node->_M_transfer(__first._M_node, __last._M_node); }
// Inserts new element at position given and with value given.
#ifndef __GXX_EXPERIMENTAL_CXX0X__
@ -1432,7 +1432,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
_M_insert(iterator __position, const value_type& __x)
{
_Node* __tmp = _M_create_node(__x);
__tmp->hook(__position._M_node);
__tmp->_M_hook(__position._M_node);
}
#else
template<typename... _Args>
@ -1440,7 +1440,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
_M_insert(iterator __position, _Args&&... __args)
{
_Node* __tmp = _M_create_node(std::forward<_Args>(__args)...);
__tmp->hook(__position._M_node);
__tmp->_M_hook(__position._M_node);
}
#endif
@ -1448,7 +1448,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
void
_M_erase(iterator __position)
{
__position._M_node->unhook();
__position._M_node->_M_unhook();
_Node* __n = static_cast<_Node*>(__position._M_node);
#ifdef __GXX_EXPERIMENTAL_CXX0X__
_M_get_Node_allocator().destroy(__n);

View File

@ -1,7 +1,7 @@
## Makefile for the src subdirectory of the GNU C++ Standard library.
##
## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
## 2006, 2007, 2008, 2009
## 2006, 2007, 2008, 2009, 2010
## Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
@ -121,7 +121,8 @@ basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
$(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
if ENABLE_PARALLEL
parallel_sources = parallel_list.cc parallel_settings.cc
parallel_sources = parallel_list.cc parallel_settings.cc \
compatibility-parallel_list.cc
else
parallel_sources =
endif
@ -141,6 +142,8 @@ sources = \
codecvt.cc \
compatibility.cc \
compatibility-c++0x.cc \
compatibility-debug_list.cc \
compatibility-list.cc \
complex_io.cc \
ctype.cc \
debug.cc \
@ -154,7 +157,6 @@ sources = \
ios_init.cc \
ios_locale.cc \
limits.cc \
limits_c++0x.cc \
list.cc \
debug_list.cc \
locale.cc \
@ -239,6 +241,11 @@ parallel_settings.lo: parallel_settings.cc
parallel_settings.o: parallel_settings.cc
$(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
compatibility-parallel_list.lo: compatibility-parallel_list.cc
$(LTCXXCOMPILE) $(PARALLEL_FLAGS) -c $<
compatibility-parallel_list.o: compatibility-parallel_list.cc
$(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
# Use special rules for the C++0x sources so that the proper flags are passed.
functexcept.lo: functexcept.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
@ -270,9 +277,9 @@ hashtable_c++0x.lo: hashtable_c++0x.cc
hashtable_c++0x.o: hashtable_c++0x.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
limits_c++0x.lo: limits_c++0x.cc
limits.lo: limits.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
limits_c++0x.o: limits_c++0x.cc
limits.o: limits.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
atomic.lo: atomic.cc

View File

@ -87,11 +87,12 @@ LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
am__DEPENDENCIES_1 =
am__libstdc___la_SOURCES_DIST = atomic.cc bitmap_allocator.cc \
pool_allocator.cc mt_allocator.cc codecvt.cc compatibility.cc \
compatibility-c++0x.cc complex_io.cc ctype.cc debug.cc \
compatibility-c++0x.cc compatibility-debug_list.cc \
compatibility-list.cc complex_io.cc ctype.cc debug.cc \
functexcept.cc hash_tr1.cc globals_io.cc hashtable_tr1.cc \
hashtable_c++0x.cc ios.cc ios_failure.cc ios_init.cc \
ios_locale.cc limits.cc limits_c++0x.cc list.cc debug_list.cc \
locale.cc locale_init.cc locale_facets.cc localename.cc \
ios_locale.cc limits.cc list.cc debug_list.cc locale.cc \
locale_init.cc locale_facets.cc localename.cc \
math_stubs_float.cc math_stubs_long_double.cc stdexcept.cc \
strstream.cc system_error.cc tree.cc allocator-inst.cc \
concept-inst.cc fstream-inst.cc ext-inst.cc ios-inst.cc \
@ -103,22 +104,25 @@ am__libstdc___la_SOURCES_DIST = atomic.cc bitmap_allocator.cc \
collate_members.cc ctype_members.cc messages_members.cc \
monetary_members.cc numeric_members.cc time_members.cc \
basic_file.cc c++locale.cc compatibility-ldbl.cc \
parallel_list.cc parallel_settings.cc
parallel_list.cc parallel_settings.cc \
compatibility-parallel_list.cc
am__objects_1 = atomicity.lo codecvt_members.lo collate_members.lo \
ctype_members.lo messages_members.lo monetary_members.lo \
numeric_members.lo time_members.lo
@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_2 = compatibility-ldbl.lo
@ENABLE_PARALLEL_TRUE@am__objects_3 = parallel_list.lo \
@ENABLE_PARALLEL_TRUE@ parallel_settings.lo
@ENABLE_PARALLEL_TRUE@ parallel_settings.lo \
@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.lo
am__objects_4 = basic_file.lo c++locale.lo $(am__objects_2) \
$(am__objects_3)
am__objects_5 = atomic.lo bitmap_allocator.lo pool_allocator.lo \
mt_allocator.lo codecvt.lo compatibility.lo \
compatibility-c++0x.lo complex_io.lo ctype.lo debug.lo \
compatibility-c++0x.lo compatibility-debug_list.lo \
compatibility-list.lo complex_io.lo ctype.lo debug.lo \
functexcept.lo hash_tr1.lo globals_io.lo hashtable_tr1.lo \
hashtable_c++0x.lo ios.lo ios_failure.lo ios_init.lo \
ios_locale.lo limits.lo limits_c++0x.lo list.lo debug_list.lo \
locale.lo locale_init.lo locale_facets.lo localename.lo \
ios_locale.lo limits.lo list.lo debug_list.lo locale.lo \
locale_init.lo locale_facets.lo localename.lo \
math_stubs_float.lo math_stubs_long_double.lo stdexcept.lo \
strstream.lo system_error.lo tree.lo allocator-inst.lo \
concept-inst.lo fstream-inst.lo ext-inst.lo ios-inst.lo \
@ -369,7 +373,9 @@ host_sources_extra = \
basic_file.cc c++locale.cc ${ldbl_compat_sources} ${parallel_sources}
@ENABLE_PARALLEL_FALSE@parallel_sources =
@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_list.cc parallel_settings.cc
@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_list.cc parallel_settings.cc \
@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc
@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
@ -382,6 +388,8 @@ sources = \
codecvt.cc \
compatibility.cc \
compatibility-c++0x.cc \
compatibility-debug_list.cc \
compatibility-list.cc \
complex_io.cc \
ctype.cc \
debug.cc \
@ -395,7 +403,6 @@ sources = \
ios_init.cc \
ios_locale.cc \
limits.cc \
limits_c++0x.cc \
list.cc \
debug_list.cc \
locale.cc \
@ -869,6 +876,11 @@ parallel_settings.lo: parallel_settings.cc
parallel_settings.o: parallel_settings.cc
$(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
compatibility-parallel_list.lo: compatibility-parallel_list.cc
$(LTCXXCOMPILE) $(PARALLEL_FLAGS) -c $<
compatibility-parallel_list.o: compatibility-parallel_list.cc
$(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
# Use special rules for the C++0x sources so that the proper flags are passed.
functexcept.lo: functexcept.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
@ -900,9 +912,9 @@ hashtable_c++0x.lo: hashtable_c++0x.cc
hashtable_c++0x.o: hashtable_c++0x.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
limits_c++0x.lo: limits_c++0x.cc
limits.lo: limits.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
limits_c++0x.o: limits_c++0x.cc
limits.o: limits.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
atomic.lo: atomic.cc

View File

@ -1,6 +1,6 @@
// Compatibility symbols for previous versions, C++0x bits -*- C++ -*-
// Copyright (C) 2009 Free Software Foundation, Inc.
// Copyright (C) 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
@ -104,7 +104,7 @@ namespace std
}
};
#include "hash.cc"
#include "hash-aux.cc"
template<>
size_t

View File

@ -0,0 +1,27 @@
// Compatibility symbols for previous versions, debug list -*- C++ -*-
// Copyright (C) 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/>.
#define _GLIBCXX_DEBUG
#include "compatibility-list.cc"

View File

@ -1,6 +1,6 @@
// Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
// Copyright (C) 2006, 2008, 2009
// Copyright (C) 2006, 2008, 2009, 2010
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -74,7 +74,7 @@ namespace std
{
namespace tr1
{
#include "hash.cc"
#include "hash-aux.cc"
}
}

View File

@ -0,0 +1,99 @@
// Compatibility symbols for previous versions, list bits -*- C++ -*-
// Copyright (C) 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/>.
#include <bits/move.h>
_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
struct _List_node_base
{
_List_node_base* _M_next;
_List_node_base* _M_prev;
void
transfer(_List_node_base * const __first,
_List_node_base * const __last) throw ();
void
reverse() throw ();
void
hook(_List_node_base * const __position) throw ();
void
unhook() throw ();
};
void
_List_node_base::transfer(_List_node_base * const __first,
_List_node_base * const __last) throw ()
{
if (this != __last)
{
// Remove [first, last) from its old position.
__last->_M_prev->_M_next = this;
__first->_M_prev->_M_next = __last;
this->_M_prev->_M_next = __first;
// Splice [first, last) into its new position.
_List_node_base* const __tmp = this->_M_prev;
this->_M_prev = __last->_M_prev;
__last->_M_prev = __first->_M_prev;
__first->_M_prev = __tmp;
}
}
void
_List_node_base::reverse() throw ()
{
_List_node_base* __tmp = this;
do
{
std::swap(__tmp->_M_next, __tmp->_M_prev);
// Old next node is now prev.
__tmp = __tmp->_M_prev;
}
while (__tmp != this);
}
void
_List_node_base::hook(_List_node_base* const __position) throw ()
{
this->_M_next = __position;
this->_M_prev = __position->_M_prev;
__position->_M_prev->_M_next = this;
__position->_M_prev = this;
}
void
_List_node_base::unhook() throw ()
{
_List_node_base* const __next_node = this->_M_next;
_List_node_base* const __prev_node = this->_M_prev;
__prev_node->_M_next = __next_node;
__next_node->_M_prev = __prev_node;
}
_GLIBCXX_END_NESTED_NAMESPACE

View File

@ -0,0 +1,25 @@
// Compatibility symbols for previous versions, parallel list -*- C++ -*-
// Copyright (C) 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/>.
#include "compatibility-list.cc"

View File

@ -1,6 +1,6 @@
// Compatibility symbols for previous versions -*- C++ -*-
// Copyright (C) 2005, 2006, 2007, 2008, 2009
// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -386,7 +386,7 @@ _ZN10__gnu_norm15_List_node_base7reverseEv;
_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_;
*/
#include "list.cc"
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX4hookEPS_, \
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX7_M_hookEPS_, \
_ZN10__gnu_norm15_List_node_base4hookEPS0_, \
GLIBCXX_3.4)
@ -394,15 +394,15 @@ _GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX4swapERS_S0_, \
_ZN10__gnu_norm15_List_node_base4swapERS0_S1_, \
GLIBCXX_3.4)
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX6unhookEv, \
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX9_M_unhookEv, \
_ZN10__gnu_norm15_List_node_base6unhookEv, \
GLIBCXX_3.4)
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX7reverseEv, \
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX10_M_reverseEv, \
_ZN10__gnu_norm15_List_node_base7reverseEv, \
GLIBCXX_3.4)
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX8transferEPS_S0_, \
_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX11_M_transferEPS_S0_, \
_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_, \
GLIBCXX_3.4)
#undef _List_node_base

View File

@ -1,6 +1,6 @@
// std::hash definitions -*- C++ -*-
// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
// Copyright (C) 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
@ -31,6 +31,6 @@ namespace std
{
namespace tr1
{
#include "hash.cc"
#include "hash-aux.cc"
}
}

View File

@ -1,6 +1,6 @@
// std::__detail definitions -*- C++ -*-
// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
// Copyright (C) 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
@ -28,5 +28,5 @@
namespace std
{
#include "hashtable.cc"
#include "hashtable-aux.cc"
}

View File

@ -1,6 +1,6 @@
// std::__detail definitions -*- C++ -*-
// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
// Copyright (C) 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
@ -26,6 +26,6 @@ namespace std
{
namespace tr1
{
#include "hashtable.cc"
#include "hashtable-aux.cc"
}
}

View File

@ -1,6 +1,6 @@
// Static data members of -*- C++ -*- numeric_limits classes
// Copyright (C) 1999, 2001, 2002, 2005, 2006, 2009
// Copyright (C) 1999, 2001, 2002, 2005, 2006, 2009, 2010
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -443,6 +443,54 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const bool numeric_limits<long double>::tinyness_before;
const float_round_style numeric_limits<long double>::round_style;
// char16_t
const bool numeric_limits<char16_t>::is_specialized;
const int numeric_limits<char16_t>::digits;
const int numeric_limits<char16_t>::digits10;
const bool numeric_limits<char16_t>::is_signed;
const bool numeric_limits<char16_t>::is_integer;
const bool numeric_limits<char16_t>::is_exact;
const int numeric_limits<char16_t>::radix;
const int numeric_limits<char16_t>::min_exponent;
const int numeric_limits<char16_t>::min_exponent10;
const int numeric_limits<char16_t>::max_exponent;
const int numeric_limits<char16_t>::max_exponent10;
const bool numeric_limits<char16_t>::has_infinity;
const bool numeric_limits<char16_t>::has_quiet_NaN;
const bool numeric_limits<char16_t>::has_signaling_NaN;
const float_denorm_style numeric_limits<char16_t>::has_denorm;
const bool numeric_limits<char16_t>::has_denorm_loss;
const bool numeric_limits<char16_t>::is_iec559;
const bool numeric_limits<char16_t>::is_bounded;
const bool numeric_limits<char16_t>::is_modulo;
const bool numeric_limits<char16_t>::traps;
const bool numeric_limits<char16_t>::tinyness_before;
const float_round_style numeric_limits<char16_t>::round_style;
// char32_t
const bool numeric_limits<char32_t>::is_specialized;
const int numeric_limits<char32_t>::digits;
const int numeric_limits<char32_t>::digits10;
const bool numeric_limits<char32_t>::is_signed;
const bool numeric_limits<char32_t>::is_integer;
const bool numeric_limits<char32_t>::is_exact;
const int numeric_limits<char32_t>::radix;
const int numeric_limits<char32_t>::min_exponent;
const int numeric_limits<char32_t>::min_exponent10;
const int numeric_limits<char32_t>::max_exponent;
const int numeric_limits<char32_t>::max_exponent10;
const bool numeric_limits<char32_t>::has_infinity;
const bool numeric_limits<char32_t>::has_quiet_NaN;
const bool numeric_limits<char32_t>::has_signaling_NaN;
const float_denorm_style numeric_limits<char32_t>::has_denorm;
const bool numeric_limits<char32_t>::has_denorm_loss;
const bool numeric_limits<char32_t>::is_iec559;
const bool numeric_limits<char32_t>::is_bounded;
const bool numeric_limits<char32_t>::is_modulo;
const bool numeric_limits<char32_t>::traps;
const bool numeric_limits<char32_t>::tinyness_before;
const float_round_style numeric_limits<char32_t>::round_style;
_GLIBCXX_END_NAMESPACE
// XXX GLIBCXX_ABI Deprecated

View File

@ -1,80 +0,0 @@
// std::limits definitions -*- C++ -*-
// Copyright (C) 2008, 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/>.
#include <limits>
#ifndef __GXX_EXPERIMENTAL_CXX0X__
# error "limits_c++0x.cc must be compiled with -std=gnu++0x"
#endif
namespace std
{
// char16_t
const bool numeric_limits<char16_t>::is_specialized;
const int numeric_limits<char16_t>::digits;
const int numeric_limits<char16_t>::digits10;
const bool numeric_limits<char16_t>::is_signed;
const bool numeric_limits<char16_t>::is_integer;
const bool numeric_limits<char16_t>::is_exact;
const int numeric_limits<char16_t>::radix;
const int numeric_limits<char16_t>::min_exponent;
const int numeric_limits<char16_t>::min_exponent10;
const int numeric_limits<char16_t>::max_exponent;
const int numeric_limits<char16_t>::max_exponent10;
const bool numeric_limits<char16_t>::has_infinity;
const bool numeric_limits<char16_t>::has_quiet_NaN;
const bool numeric_limits<char16_t>::has_signaling_NaN;
const float_denorm_style numeric_limits<char16_t>::has_denorm;
const bool numeric_limits<char16_t>::has_denorm_loss;
const bool numeric_limits<char16_t>::is_iec559;
const bool numeric_limits<char16_t>::is_bounded;
const bool numeric_limits<char16_t>::is_modulo;
const bool numeric_limits<char16_t>::traps;
const bool numeric_limits<char16_t>::tinyness_before;
const float_round_style numeric_limits<char16_t>::round_style;
// char32_t
const bool numeric_limits<char32_t>::is_specialized;
const int numeric_limits<char32_t>::digits;
const int numeric_limits<char32_t>::digits10;
const bool numeric_limits<char32_t>::is_signed;
const bool numeric_limits<char32_t>::is_integer;
const bool numeric_limits<char32_t>::is_exact;
const int numeric_limits<char32_t>::radix;
const int numeric_limits<char32_t>::min_exponent;
const int numeric_limits<char32_t>::min_exponent10;
const int numeric_limits<char32_t>::max_exponent;
const int numeric_limits<char32_t>::max_exponent10;
const bool numeric_limits<char32_t>::has_infinity;
const bool numeric_limits<char32_t>::has_quiet_NaN;
const bool numeric_limits<char32_t>::has_signaling_NaN;
const float_denorm_style numeric_limits<char32_t>::has_denorm;
const bool numeric_limits<char32_t>::has_denorm_loss;
const bool numeric_limits<char32_t>::is_iec559;
const bool numeric_limits<char32_t>::is_bounded;
const bool numeric_limits<char32_t>::is_modulo;
const bool numeric_limits<char32_t>::traps;
const bool numeric_limits<char32_t>::tinyness_before;
const float_round_style numeric_limits<char32_t>::round_style;
}

View File

@ -1,6 +1,6 @@
// std::list utilities implementation -*- C++ -*-
// Copyright (C) 2003, 2005, 2009 Free Software Foundation, Inc.
// Copyright (C) 2003, 2005, 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
@ -85,8 +85,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
}
void
_List_node_base::transfer(_List_node_base * const __first,
_List_node_base * const __last)
_List_node_base::_M_transfer(_List_node_base * const __first,
_List_node_base * const __last)
{
if (this != __last)
{
@ -104,7 +104,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
}
void
_List_node_base::reverse()
_List_node_base::_M_reverse()
{
_List_node_base* __tmp = this;
do
@ -118,7 +118,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
}
void
_List_node_base::hook(_List_node_base* const __position)
_List_node_base::_M_hook(_List_node_base* const __position)
{
this->_M_next = __position;
this->_M_prev = __position->_M_prev;
@ -127,7 +127,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
}
void
_List_node_base::unhook()
_List_node_base::_M_unhook()
{
_List_node_base* const __next_node = this->_M_next;
_List_node_base* const __prev_node = this->_M_prev;