Gcc 3.4.6 C++ support bits (as of 2006/08/25 #116475).

This commit is contained in:
Alexander Kabaev 2006-08-26 21:29:46 +00:00
parent e35cf0a56c
commit f482ed056f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/gcc/dist/; revision=161653
5 changed files with 106 additions and 43 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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;

View File

@ -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); }
}

View File

@ -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 @@ class hashtable {
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;