diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 13 | ||||
-rw-r--r-- | libstdc++-v3/include/c_global/cwctype | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/c_std/cwctype | 8 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc | 4 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_abi.h | 6 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_allocator.h | 5 |
6 files changed, 33 insertions, 11 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1a2d4105fa0..0f24ab4f6e7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,18 @@ 2010-06-07 Paolo Carlini <paolo.carlini@oracle.com> + PR libstdc++/44417 + * include/c_std/cwctype: Provide a workaround for bug glibc + BZ 9694 affecting glibc 2.9 and older. + * include/c_global/cwctype: Likewise. + * testsuite/util/testsuite_abi.h: Remove temporary workaround. + * testsuite/util/testsuite_allocator.h: Use everywhere std::size_t + and std::ptrdiff_t, don't include <cstddef>. + + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ + error_code.cc: Minor tweak, prefer <cwchar> to <wchar.h>. + +2010-06-07 Paolo Carlini <paolo.carlini@oracle.com> + * include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp: Avoid -Wall warnings. * testsuite/27_io/ios_base/failure/what-3.cc: Likewise. diff --git a/libstdc++-v3/include/c_global/cwctype b/libstdc++-v3/include/c_global/cwctype index be649a28950..2ac1155aa9b 100644 --- a/libstdc++-v3/include/c_global/cwctype +++ b/libstdc++-v3/include/c_global/cwctype @@ -43,9 +43,15 @@ #include <bits/c++config.h> #if _GLIBCXX_HAVE_WCTYPE_H -#include <wctype.h> + +#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 10 +// Work around glibc BZ 9694 +#include <stddef.h> #endif +#include <wctype.h> +#endif // _GLIBCXX_HAVE_WCTYPE_H + #ifndef _GLIBCXX_CWCTYPE #define _GLIBCXX_CWCTYPE 1 diff --git a/libstdc++-v3/include/c_std/cwctype b/libstdc++-v3/include/c_std/cwctype index 4af425067b9..d6750390a0a 100644 --- a/libstdc++-v3/include/c_std/cwctype +++ b/libstdc++-v3/include/c_std/cwctype @@ -45,9 +45,15 @@ #include <bits/c++config.h> #if _GLIBCXX_HAVE_WCTYPE_H -#include <wctype.h> + +#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 10 +// Work around glibc BZ 9694 +#include <stddef.h> #endif +#include <wctype.h> +#endif // _GLIBCXX_HAVE_WCTYPE_H + // Get rid of those macros defined in <wctype.h> in lieu of real functions. #undef iswalnum #undef iswalpha diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc index 5df2990fc5a..16f9108a332 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc @@ -1,7 +1,7 @@ // { dg-options "-std=gnu++0x" } // { dg-require-swprintf "" } -// Copyright (C) 2007, 2008, 2009 Free Software Foundation +// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation // // 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 @@ -22,7 +22,7 @@ #include <sstream> #include <system_error> #include <algorithm> -#include <wchar.h> +#include <cwchar> #include <testsuite_hooks.h> // Effects: os << ec.category().name() << ':' << ec.value(); diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.h b/libstdc++-v3/testsuite/util/testsuite_abi.h index cad40b6eb85..c9fe0a4d11c 100644 --- a/libstdc++-v3/testsuite/util/testsuite_abi.h +++ b/libstdc++-v3/testsuite/util/testsuite_abi.h @@ -1,6 +1,7 @@ // -*- C++ -*- -// Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +// Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 +// Free Software Foundation, Inc. // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as @@ -16,11 +17,8 @@ // along with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. - // Benjamin Kosnik <bkoz@redhat.com> -// Include stddef now to work around glibc BZ 9694 -#include <stddef.h> #include <string> #include <stdexcept> #include <vector> diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h index b7fce48b5bc..cb481b2a7f9 100644 --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h @@ -27,7 +27,6 @@ #ifndef _GLIBCXX_TESTSUITE_ALLOCATOR_H #define _GLIBCXX_TESTSUITE_ALLOCATOR_H -#include <cstddef> #include <tr1/unordered_map> #include <cassert> #include <bits/move.h> @@ -241,8 +240,8 @@ namespace __gnu_test : private uneq_allocator_base { public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; typedef Tp* pointer; typedef const Tp* const_pointer; typedef Tp& reference; |