diff options
author | kan <kan@FreeBSD.org> | 2006-08-26 21:29:46 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2006-08-26 21:29:46 +0000 |
commit | 42689eaf549f5433a44b3430fb505361a8681778 (patch) | |
tree | 1eea941fcded8f9a67f75fffb3a63b2a4780a0e9 /contrib | |
parent | ab6c6e434e4ca0bf593007d49dee6eceb73286c0 (diff) | |
download | FreeBSD-src-42689eaf549f5433a44b3430fb505361a8681778.zip FreeBSD-src-42689eaf549f5433a44b3430fb505361a8681778.tar.gz |
Gcc 3.4.6 C++ support bits (as of 2006/08/25 #116475).
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/libstdc++/ChangeLog | 48 | ||||
-rw-r--r-- | contrib/libstdc++/include/bits/c++config | 2 | ||||
-rw-r--r-- | contrib/libstdc++/include/bits/fstream.tcc | 29 | ||||
-rw-r--r-- | contrib/libstdc++/include/c_std/std_cmath.h | 66 | ||||
-rw-r--r-- | contrib/libstdc++/include/ext/hashtable.h | 4 |
5 files changed, 106 insertions, 43 deletions
diff --git a/contrib/libstdc++/ChangeLog b/contrib/libstdc++/ChangeLog index 504af72..0fa93eb 100644 --- a/contrib/libstdc++/ChangeLog +++ b/contrib/libstdc++/ChangeLog @@ -1,3 +1,51 @@ +2006-03-05 Release Manager + + * GCC 3.4.6 released. + +2005-11-30 Release Manager + + * GCC 3.4.5 released. + +2005-09-10 Joseph S. Myers <joseph@codesourcery.com> + + * testsuite/26_numerics/c99_classification_macros_c.cc: + XFAIL on *-*-linux*, not *-*-linux-gnu. + +2005-09-01 Benjamin Kosnik <bkoz@redhat.com> + + * include/c_std/std_cmath.h: Declare C99 functions and helper + functions as inline. + +2005-08-29 Paolo Carlini <pcarlini@suse.de> + + PR libstdc++/23528 + Port from HEAD/4_0-branch: + 2004-07-28 Matt Austern <austern@apple.com> + * include/ext/hashtable.h: Use rebind so that allocator_type + has correct type for a container's allocator. + * testsuite/ext/23528.cc: New. + +2005-08-24 Lawrence Lim <llim@redhat.com> + Jakub Jelinek <jakub@redhat.com> + Benjamin Kosnik <bkoz@redhat.com> + + PR libstdc++/23550 + * testsuite/21_strings/char_traits/requirements/char/1.cc + (test01): Simplify counting. + * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc + (test02): Same. + +2005-07-18 Paolo Carlini <pcarlini@suse.de> + Nathan Myers <ncm@cantrip.org> + + PR libstdc++/21286 + * include/bits/fstream.tcc (basic_filebuf<>::xsgetn): + Loop on short reads. + +2005-05-27 Mark Mitchell <mark@codesourcery.com> + + * testsuite/Makefile.in: Regenerate with Automake 1.7.8. + 2005-05-19 Release Manager * GCC 3.4.4 released. diff --git a/contrib/libstdc++/include/bits/c++config b/contrib/libstdc++/include/bits/c++config index d6eee46..15e4b28 100644 --- a/contrib/libstdc++/include/bits/c++config +++ b/contrib/libstdc++/include/bits/c++config @@ -35,7 +35,7 @@ #include <bits/os_defines.h> // The current version of the C++ library in compressed ISO date format. -#define __GLIBCXX__ 20050519 +#define __GLIBCXX__ 20060311 // Allow use of "export template." This is currently not a feature // that g++ supports. diff --git a/contrib/libstdc++/include/bits/fstream.tcc b/contrib/libstdc++/include/bits/fstream.tcc index 25a4d48..3b433ea 100644 --- a/contrib/libstdc++/include/bits/fstream.tcc +++ b/contrib/libstdc++/include/bits/fstream.tcc @@ -535,13 +535,28 @@ namespace std __n -= __avail; } - const streamsize __len = _M_file.xsgetn(reinterpret_cast<char*>(__s), - __n); - if (__len == -1) - __throw_ios_failure(__N("basic_filebuf::xsgetn " - "error reading the file")); - __ret += __len; - if (__len == __n) + // Need to loop in case of short reads (relatively common + // with pipes). + streamsize __len; + for (;;) + { + __len = _M_file.xsgetn(reinterpret_cast<char*>(__s), + __n); + if (__len == -1) + __throw_ios_failure(__N("basic_filebuf::xsgetn " + "error reading the file")); + if (__len == 0) + break; + + __n -= __len; + __ret += __len; + if (__n == 0) + break; + + __s += __len; + } + + if (__n == 0) { _M_set_buffer(0); _M_reading = true; diff --git a/contrib/libstdc++/include/c_std/std_cmath.h b/contrib/libstdc++/include/c_std/std_cmath.h index 66866b2..729f510 100644 --- a/contrib/libstdc++/include/c_std/std_cmath.h +++ b/contrib/libstdc++/include/c_std/std_cmath.h @@ -444,57 +444,57 @@ namespace std namespace __gnu_cxx { template<typename _Tp> - int + inline int __capture_fpclassify(_Tp __f) { return fpclassify(__f); } template<typename _Tp> - int + inline int __capture_isfinite(_Tp __f) { return isfinite(__f); } template<typename _Tp> - int + inline int __capture_isinf(_Tp __f) { return isinf(__f); } template<typename _Tp> - int + inline int __capture_isnan(_Tp __f) { return isnan(__f); } template<typename _Tp> - int + inline int __capture_isnormal(_Tp __f) { return isnormal(__f); } template<typename _Tp> - int + inline int __capture_signbit(_Tp __f) { return signbit(__f); } template<typename _Tp> - int + inline int __capture_isgreater(_Tp __f1, _Tp __f2) { return isgreater(__f1, __f2); } template<typename _Tp> - int - __capture_isgreaterequal(_Tp __f1, _Tp __f2) - { return isgreaterequal(__f1, __f2); } + inline int + __capture_isgreaterequal(_Tp __f1, _Tp __f2) + { return isgreaterequal(__f1, __f2); } template<typename _Tp> - int - __capture_isless(_Tp __f1, _Tp __f2) { return isless(__f1, __f2); } + inline int + __capture_isless(_Tp __f1, _Tp __f2) { return isless(__f1, __f2); } template<typename _Tp> - int - __capture_islessequal(_Tp __f1, _Tp __f2) - { return islessequal(__f1, __f2); } + inline int + __capture_islessequal(_Tp __f1, _Tp __f2) + { return islessequal(__f1, __f2); } template<typename _Tp> - int - __capture_islessgreater(_Tp __f1, _Tp __f2) - { return islessgreater(__f1, __f2); } + inline int + __capture_islessgreater(_Tp __f1, _Tp __f2) + { return islessgreater(__f1, __f2); } template<typename _Tp> - int - __capture_isunordered(_Tp __f1, _Tp __f2) - { return isunordered(__f1, __f2); } + inline int + __capture_isunordered(_Tp __f1, _Tp __f2) + { return isunordered(__f1, __f2); } } // Only undefine the C99 FP macros, if actually captured for namespace movement @@ -518,54 +518,54 @@ namespace __gnu_cxx namespace __gnu_cxx { template<typename _Tp> - int + inline int fpclassify(_Tp __f) { return __capture_fpclassify(__f); } template<typename _Tp> - int + inline int isfinite(_Tp __f) { return __capture_isfinite(__f); } template<typename _Tp> - int + inline int isinf(_Tp __f) { return __capture_isinf(__f); } template<typename _Tp> - int + inline int isnan(_Tp __f) { return __capture_isnan(__f); } template<typename _Tp> - int + inline int isnormal(_Tp __f) { return __capture_isnormal(__f); } template<typename _Tp> - int + inline int signbit(_Tp __f) { return __capture_signbit(__f); } template<typename _Tp> - int + inline int isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, __f2); } template<typename _Tp> - int + inline int isgreaterequal(_Tp __f1, _Tp __f2) { return __capture_isgreaterequal(__f1, __f2); } template<typename _Tp> - int + inline int isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); } template<typename _Tp> - int + inline int islessequal(_Tp __f1, _Tp __f2) { return __capture_islessequal(__f1, __f2); } template<typename _Tp> - int + inline int islessgreater(_Tp __f1, _Tp __f2) { return __capture_islessgreater(__f1, __f2); } template<typename _Tp> - int + inline int isunordered(_Tp __f1, _Tp __f2) { return __capture_isunordered(__f1, __f2); } } diff --git a/contrib/libstdc++/include/ext/hashtable.h b/contrib/libstdc++/include/ext/hashtable.h index f81a858..9f2fb1e 100644 --- a/contrib/libstdc++/include/ext/hashtable.h +++ b/contrib/libstdc++/include/ext/hashtable.h @@ -1,6 +1,6 @@ // Hashtable implementation used by containers -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2004, 2005 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 @@ -241,7 +241,7 @@ private: typedef _Hashtable_node<_Val> _Node; public: - typedef _Alloc allocator_type; + typedef typename _Alloc::template rebind<value_type>::other allocator_type; allocator_type get_allocator() const { return _M_node_allocator; } private: typedef typename _Alloc::template rebind<_Node>::other _Node_Alloc; |