aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/src
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2010-02-07 18:36:48 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2010-02-07 18:36:48 +0000
commit240c7f7f570ea8b125fa764daedccd7ce1c147c7 (patch)
tree6213b8ceab23028a746ed1b0dd8c40841c9dd800 /libstdc++-v3/src
parent0e7e3cb8362764bdabd4c9a23ea09f9a04fc3e9a (diff)
downloadgcc-240c7f7f570ea8b125fa764daedccd7ce1c147c7.tar.gz
gcc-240c7f7f570ea8b125fa764daedccd7ce1c147c7.tar.bz2
gcc-240c7f7f570ea8b125fa764daedccd7ce1c147c7.zip
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
Diffstat (limited to 'libstdc++-v3/src')
-rw-r--r--libstdc++-v3/src/Makefile.am17
-rw-r--r--libstdc++-v3/src/Makefile.in36
-rw-r--r--libstdc++-v3/src/compatibility-c++0x.cc4
-rw-r--r--libstdc++-v3/src/compatibility-debug_list.cc27
-rw-r--r--libstdc++-v3/src/compatibility-ldbl.cc4
-rw-r--r--libstdc++-v3/src/compatibility-list.cc99
-rw-r--r--libstdc++-v3/src/compatibility-parallel_list.cc25
-rw-r--r--libstdc++-v3/src/compatibility.cc10
-rw-r--r--libstdc++-v3/src/hash-aux.cc (renamed from libstdc++-v3/src/hash.cc)0
-rw-r--r--libstdc++-v3/src/hash_tr1.cc4
-rw-r--r--libstdc++-v3/src/hashtable-aux.cc (renamed from libstdc++-v3/src/hashtable.cc)0
-rw-r--r--libstdc++-v3/src/hashtable_c++0x.cc4
-rw-r--r--libstdc++-v3/src/hashtable_tr1.cc4
-rw-r--r--libstdc++-v3/src/limits.cc50
-rw-r--r--libstdc++-v3/src/limits_c++0x.cc80
-rw-r--r--libstdc++-v3/src/list.cc12
16 files changed, 257 insertions, 119 deletions
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 4306dd5c7c2..38b79a819e6 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -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
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index a2eb4770d70..e48eca45917 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -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
diff --git a/libstdc++-v3/src/compatibility-c++0x.cc b/libstdc++-v3/src/compatibility-c++0x.cc
index 5d6e5ddc14f..c075a9b3977 100644
--- a/libstdc++-v3/src/compatibility-c++0x.cc
+++ b/libstdc++-v3/src/compatibility-c++0x.cc
@@ -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
diff --git a/libstdc++-v3/src/compatibility-debug_list.cc b/libstdc++-v3/src/compatibility-debug_list.cc
new file mode 100644
index 00000000000..3f14a534250
--- /dev/null
+++ b/libstdc++-v3/src/compatibility-debug_list.cc
@@ -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"
diff --git a/libstdc++-v3/src/compatibility-ldbl.cc b/libstdc++-v3/src/compatibility-ldbl.cc
index 9658751bcbc..d73be4afea6 100644
--- a/libstdc++-v3/src/compatibility-ldbl.cc
+++ b/libstdc++-v3/src/compatibility-ldbl.cc
@@ -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"
}
}
diff --git a/libstdc++-v3/src/compatibility-list.cc b/libstdc++-v3/src/compatibility-list.cc
new file mode 100644
index 00000000000..57a2df97b7e
--- /dev/null
+++ b/libstdc++-v3/src/compatibility-list.cc
@@ -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
diff --git a/libstdc++-v3/src/compatibility-parallel_list.cc b/libstdc++-v3/src/compatibility-parallel_list.cc
new file mode 100644
index 00000000000..d9d7b60fd34
--- /dev/null
+++ b/libstdc++-v3/src/compatibility-parallel_list.cc
@@ -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"
diff --git a/libstdc++-v3/src/compatibility.cc b/libstdc++-v3/src/compatibility.cc
index 41071d23b81..dceebe1174c 100644
--- a/libstdc++-v3/src/compatibility.cc
+++ b/libstdc++-v3/src/compatibility.cc
@@ -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
diff --git a/libstdc++-v3/src/hash.cc b/libstdc++-v3/src/hash-aux.cc
index cc2385875eb..cc2385875eb 100644
--- a/libstdc++-v3/src/hash.cc
+++ b/libstdc++-v3/src/hash-aux.cc
diff --git a/libstdc++-v3/src/hash_tr1.cc b/libstdc++-v3/src/hash_tr1.cc
index 54f2b6e608e..10ba64b9f3c 100644
--- a/libstdc++-v3/src/hash_tr1.cc
+++ b/libstdc++-v3/src/hash_tr1.cc
@@ -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"
}
}
diff --git a/libstdc++-v3/src/hashtable.cc b/libstdc++-v3/src/hashtable-aux.cc
index 8bd3afb0903..8bd3afb0903 100644
--- a/libstdc++-v3/src/hashtable.cc
+++ b/libstdc++-v3/src/hashtable-aux.cc
diff --git a/libstdc++-v3/src/hashtable_c++0x.cc b/libstdc++-v3/src/hashtable_c++0x.cc
index 5a91fdef11e..c99a094c046 100644
--- a/libstdc++-v3/src/hashtable_c++0x.cc
+++ b/libstdc++-v3/src/hashtable_c++0x.cc
@@ -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"
}
diff --git a/libstdc++-v3/src/hashtable_tr1.cc b/libstdc++-v3/src/hashtable_tr1.cc
index 160fd8e9337..70de1bdf310 100644
--- a/libstdc++-v3/src/hashtable_tr1.cc
+++ b/libstdc++-v3/src/hashtable_tr1.cc
@@ -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"
}
}
diff --git a/libstdc++-v3/src/limits.cc b/libstdc++-v3/src/limits.cc
index 3cf2c281a52..09a5dae8656 100644
--- a/libstdc++-v3/src/limits.cc
+++ b/libstdc++-v3/src/limits.cc
@@ -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
diff --git a/libstdc++-v3/src/limits_c++0x.cc b/libstdc++-v3/src/limits_c++0x.cc
deleted file mode 100644
index b911bd4c78e..00000000000
--- a/libstdc++-v3/src/limits_c++0x.cc
+++ /dev/null
@@ -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;
-}
diff --git a/libstdc++-v3/src/list.cc b/libstdc++-v3/src/list.cc
index e5523b9fba4..f35feec3d48 100644
--- a/libstdc++-v3/src/list.cc
+++ b/libstdc++-v3/src/list.cc
@@ -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;