diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-09-10 14:07:55 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-09-10 14:07:55 +0000 |
commit | 2dd3121f9ebb10bd60905a987a49c8cd83e7f264 (patch) | |
tree | 4b0b4bee8b7f0b0e05d46beff4a11d4ed66b469f /libstdc++-v3 | |
parent | b636db2e16616aeba2b0db14b0b9c4cd7ee0190c (diff) | |
download | gcc-2dd3121f9ebb10bd60905a987a49c8cd83e7f264.zip gcc-2dd3121f9ebb10bd60905a987a49c8cd83e7f264.tar.gz gcc-2dd3121f9ebb10bd60905a987a49c8cd83e7f264.tar.bz2 |
hash-string-aux.cc: Remove.
2010-09-10 Paolo Carlini <paolo.carlini@oracle.com>
* src/hash-string-aux.cc: Remove. Move contents...
* src/hash_tr1.cc: ... here.
* src/compatibility-c++0x.cc: ... and here.
From-SVN: r164178
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/src/compatibility-c++0x.cc | 24 | ||||
-rw-r--r-- | libstdc++-v3/src/hash-string-aux.cc | 48 | ||||
-rw-r--r-- | libstdc++-v3/src/hash_tr1.cc | 25 |
4 files changed, 53 insertions, 50 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 127ea5e..819e45b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2010-09-10 Paolo Carlini <paolo.carlini@oracle.com> + + * src/hash-string-aux.cc: Remove. Move contents... + * src/hash_tr1.cc: ... here. + * src/compatibility-c++0x.cc: ... and here. + 2010-09-09 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/45613 diff --git a/libstdc++-v3/src/compatibility-c++0x.cc b/libstdc++-v3/src/compatibility-c++0x.cc index 759267a..e86eb8d 100644 --- a/libstdc++-v3/src/compatibility-c++0x.cc +++ b/libstdc++-v3/src/compatibility-c++0x.cc @@ -50,7 +50,29 @@ namespace std // We need these due to the symbols exported since GLIBCXX_3.4.10. // See libstdc++/41662 for details. -#include "hash-string-aux.cc" +#ifndef _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL + template<> + size_t + hash<string>::operator()(string __s) const + { return _Fnv_hash::hash(__s.data(), __s.length()); } + + template<> + size_t + hash<const string&>::operator()(const string& __s) const + { return _Fnv_hash::hash(__s.data(), __s.length()); } + +#ifdef _GLIBCXX_USE_WCHAR_T + template<> + size_t + hash<wstring>::operator()(wstring __s) const + { return _Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } + + template<> + size_t + hash<const wstring&>::operator()(const wstring& __s) const + { return _Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } +#endif +#endif template<> size_t diff --git a/libstdc++-v3/src/hash-string-aux.cc b/libstdc++-v3/src/hash-string-aux.cc deleted file mode 100644 index 711d7f4..0000000 --- a/libstdc++-v3/src/hash-string-aux.cc +++ /dev/null @@ -1,48 +0,0 @@ -// std::hash and std::tr1::hash definitions, string bits -*- C++ -*- - -// 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 -// 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/>. - -#ifndef _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL - template<> - size_t - hash<string>::operator()(string __s) const - { return _Fnv_hash::hash(__s.data(), __s.length()); } - - template<> - size_t - hash<const string&>::operator()(const string& __s) const - { return _Fnv_hash::hash(__s.data(), __s.length()); } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - size_t - hash<wstring>::operator()(wstring __s) const - { return _Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } - - template<> - size_t - hash<const wstring&>::operator()(const wstring& __s) const - { return _Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } -#endif - -#endif diff --git a/libstdc++-v3/src/hash_tr1.cc b/libstdc++-v3/src/hash_tr1.cc index 0dca086..03f3ad3 100644 --- a/libstdc++-v3/src/hash_tr1.cc +++ b/libstdc++-v3/src/hash_tr1.cc @@ -30,6 +30,29 @@ namespace std namespace tr1 { #include "hash-long-double-aux.cc" -#include "hash-string-aux.cc" + +#ifndef _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL + template<> + size_t + hash<string>::operator()(string __s) const + { return _Fnv_hash::hash(__s.data(), __s.length()); } + + template<> + size_t + hash<const string&>::operator()(const string& __s) const + { return _Fnv_hash::hash(__s.data(), __s.length()); } + +#ifdef _GLIBCXX_USE_WCHAR_T + template<> + size_t + hash<wstring>::operator()(wstring __s) const + { return _Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } + + template<> + size_t + hash<const wstring&>::operator()(const wstring& __s) const + { return _Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } +#endif +#endif } } |