aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2006-08-26 21:29:46 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2006-08-26 21:29:46 +0000
commitf482ed056f515d021e5a8d294c2be4c03baf46fd (patch)
tree1eea941fcded8f9a67f75fffb3a63b2a4780a0e9
parente35cf0a56c70d1de4d2f6c4f4eadcb71e773050a (diff)
downloadsrc-f482ed056f515d021e5a8d294c2be4c03baf46fd.tar.gz
src-f482ed056f515d021e5a8d294c2be4c03baf46fd.zip
Gcc 3.4.6 C++ support bits (as of 2006/08/25 #116475).
Notes
Notes: svn path=/vendor/gcc/dist/; revision=161653
-rw-r--r--contrib/libstdc++/ChangeLog48
-rw-r--r--contrib/libstdc++/include/bits/c++config2
-rw-r--r--contrib/libstdc++/include/bits/fstream.tcc29
-rw-r--r--contrib/libstdc++/include/c_std/std_cmath.h66
-rw-r--r--contrib/libstdc++/include/ext/hashtable.h4
5 files changed, 106 insertions, 43 deletions
diff --git a/contrib/libstdc++/ChangeLog b/contrib/libstdc++/ChangeLog
index 504af7271274..0fa93eb3182b 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 d6eee46059bf..15e4b28d7e2a 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 25a4d48cb720..3b433ea79b05 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 66866b2cc3a0..729f5109bd9f 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 f81a8580b15a..9f2fb1ef151d 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;