diff options
author | obrien <obrien@FreeBSD.org> | 2001-03-19 20:51:52 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2001-03-19 20:51:52 +0000 |
commit | 0770e38ebb6278bf41b257352a781283a0be4850 (patch) | |
tree | f3effe80fc01b2742f3406920e13cf999ddd112b | |
parent | f66864abdab4a7d2cc1c8a7802a8bfdd5ab0add2 (diff) | |
parent | c9b52a085ec02fd26a842d19953704372b00cc74 (diff) | |
download | FreeBSD-src-0770e38ebb6278bf41b257352a781283a0be4850.zip FreeBSD-src-0770e38ebb6278bf41b257352a781283a0be4850.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r74483,
which included commits to RCS files with non-trunk default branches.
-rw-r--r-- | contrib/libstdc++/ChangeLog | 20 | ||||
-rw-r--r-- | contrib/libstdc++/sstream | 568 | ||||
-rw-r--r-- | contrib/libstdc++/stl/ChangeLog | 4 | ||||
-rw-r--r-- | contrib/libstdc++/stl/stl_deque.h | 14 | ||||
-rw-r--r-- | contrib/libstdc++/stl/stl_rope.h | 28 | ||||
-rw-r--r-- | contrib/libstdc++/tests/ChangeLog | 4 | ||||
-rw-r--r-- | contrib/libstdc++/testsuite/ChangeLog | 4 |
7 files changed, 396 insertions, 246 deletions
diff --git a/contrib/libstdc++/ChangeLog b/contrib/libstdc++/ChangeLog index f0e9530..02b950c 100644 --- a/contrib/libstdc++/ChangeLog +++ b/contrib/libstdc++/ChangeLog @@ -1,3 +1,23 @@ +Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. + +2001-01-01 Bernd Schmidt <bernds@redhat.co.uk> + + 1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de> + * stl_deque.h (_Deque_base::const_iterator): Change third + template argument to pointer type. + Reported by Carlo Wood <carlo@node1500a.a2000.nl> + + 1999-11-10 Benjamin Kosnik <bkoz@haight.constant.com> + Matthias Klose <doko@cs.tu-berlin.de> + * stl_rope.h: Fix initialization order. + * stl_deque.h: Use static_casts<size_type>(signed_type). + +2000-11-24 Magnus Fromreide <magfr@lysator.liu.se> + + * sstream: Backport libstdc++-V3 sstream to V2. + 2000-04-24 Magnus Fromreide <magfr@lysator.liu.se> * sstream: New file. diff --git a/contrib/libstdc++/sstream b/contrib/libstdc++/sstream index 714be71..45393b1 100644 --- a/contrib/libstdc++/sstream +++ b/contrib/libstdc++/sstream @@ -1,225 +1,343 @@ -/* This is part of libio/iostream, providing -*- C++ -*- input/output.
-Copyright (C) 2000 Free Software Foundation
-
-This file is part of the GNU IO 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 2, 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.
-
-You should have received a copy of the GNU General Public License
-along with this library; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-/* Written by Magnus Fromreide (magfr@lysator.liu.se). */
-
-#ifndef __SSTREAM__
-#define __SSTREAM__
-
-#include <string>
-#include <iostream.h>
-#include <streambuf.h>
-
-namespace std
-{
- class stringbuf : public streambuf
- {
- public:
- typedef char char_type;
- typedef int int_type;
- typedef streampos pos_type;
- typedef streamoff off_type;
-
- explicit stringbuf(int which=ios::in|ios::out) :
- streambuf(which), buf(), mode(static_cast<ios::open_mode>(which)),
- rpos(0), bufsize(1)
- { }
-
- explicit stringbuf(const std::string &s, int which=ios::in|ios::out) :
- streambuf(which), buf(s), mode(static_cast<ios::open_mode>(which)),
- bufsize(1)
- {
- if(mode & ios::in)
- {
- setg(&defbuf, &defbuf + bufsize, &defbuf + bufsize);
- }
- if(mode & ios::out)
- {
- setp(&defbuf, &defbuf + bufsize);
- }
- rpos = (mode & ios::ate ? s.size() : 0);
- }
-
- std::string str() const
- {
- const_cast<stringbuf*>(this)->sync(); // Sigh, really ugly hack
- return buf;
- };
-
- void str(const std::string& s)
- {
- buf = s;
- if(mode & ios::in)
- {
- gbump(egptr() - gptr());
- }
- if(mode & ios::out)
- {
- pbump(pbase() - pptr());
- }
- rpos = (mode & ios::ate ? s.size() : 0);
- }
-
- protected:
- inline virtual int sync();
- inline virtual int overflow(int = EOF);
- inline virtual int underflow();
- private:
- std::string buf;
- ios::open_mode mode;
- std::string::size_type rpos;
- streamsize bufsize;
- char defbuf;
- };
-
- class stringstreambase : virtual public ios {
- protected:
- stringbuf __my_sb;
- public:
- std::string str() const
- {
- return dynamic_cast<stringbuf*>(_strbuf)->str();
- }
- void str(const std::string& s)
- {
- clear();
- dynamic_cast<stringbuf*>(_strbuf)->str(s);
- }
-
- stringbuf* rdbuf()
- {
- return &__my_sb;
- }
- protected:
- stringstreambase(int which) :
- __my_sb(which)
- {
- init (&__my_sb);
- }
-
- stringstreambase(const std::string& s, int which) :
- __my_sb(s, which)
- {
- init (&__my_sb);
- }
- };
-
- class istringstream : public stringstreambase, public istream {
- public:
- istringstream(int which=ios::in) :
- stringstreambase(which)
- { }
-
- istringstream(const std::string& s, int which=ios::in) :
- stringstreambase(s, which)
- { }
- };
-
- class ostringstream : public stringstreambase, public ostream {
- public:
- ostringstream(int which=ios::out) :
- stringstreambase(which)
- { }
-
- ostringstream(const std::string& s, int which=ios::out) :
- stringstreambase(s, which)
- { }
- };
-
- class stringstream : public stringstreambase, public iostream {
- public:
- stringstream(int which=ios::in|ios::out) :
- stringstreambase(which)
- { }
-
- stringstream(const std::string &s, int which=ios::in|ios::out) :
- stringstreambase(s, which)
- { }
- };
-}
-
-inline int std::stringbuf::sync()
-{
- if((mode & ios::out) == 0)
- return EOF;
-
- streamsize n = pptr() - pbase();
- if(n)
- {
- buf.replace(rpos, std::string::npos, pbase(), n);
- if(buf.size() - rpos != n)
- return EOF;
- rpos += n;
- pbump(-n);
- gbump(egptr() - gptr());
- }
- return 0;
-}
-
-inline int std::stringbuf::overflow(int ch)
-{
- if((mode & ios::out) == 0)
- return EOF;
-
- streamsize n = pptr() - pbase();
-
- if(n && sync())
- return EOF;
-
- if(ch != EOF)
- {
- std::string::size_type oldSize = buf.size();
-
- buf.replace(rpos, std::string::npos, ch);
- if(buf.size() - oldSize != 1)
- return EOF;
- ++rpos;
- }
- return 0;
-}
-
-inline int std::stringbuf::underflow()
-{
- sync();
- if((mode & ios::in) == 0)
- {
- return EOF;
- }
- if(rpos >= buf.size())
- {
- return EOF;
- }
-
- std::string::size_type n = egptr() - eback();
- std::string::size_type s;
-
- s = buf.copy(eback(), n, rpos);
- pbump(pbase() - pptr());
- gbump(eback() - gptr());
- int res = (0377 & buf[rpos]);
- rpos += s;
- return res;
-}
-
-#endif /* not __STRSTREAM__ */
+/* This is part of libio/iostream, providing -*- C++ -*- input/output. +Copyright (C) 2000 Free Software Foundation + +This file is part of the GNU IO 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 2, 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. + +You should have received a copy of the GNU General Public License +along with this library; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +As a special exception, if you link this library with files +compiled with a GNU compiler to produce an executable, this does not cause +the resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why +the executable file might be covered by the GNU General Public License. */ + +/* Written by Magnus Fromreide (magfr@lysator.liu.se). */ +/* seekoff and ideas for overflow is largely borrowed from libstdc++-v3 */ + +#ifndef __SSTREAM__ +#define __SSTREAM__ + +#include <iostream.h> +#include <streambuf.h> +#include <string> + +namespace std +{ + class stringbuf : public streambuf + { + public: + typedef char char_type; + typedef int int_type; + typedef streampos pos_type; + typedef streamoff off_type; + + explicit + stringbuf(int which=ios::in|ios::out) + : streambuf(), mode(static_cast<ios::open_mode>(which)), + stream(NULL), stream_len(0) + { + stringbuf_init(); + } + + explicit + stringbuf(const string &str, int which=ios::in|ios::out) + : streambuf(), mode(static_cast<ios::open_mode>(which)), + stream(NULL), stream_len(0) + { + if (mode & (ios::in|ios::out)) + { + stream_len = str.size(); + stream = new char_type[stream_len]; + str.copy(stream, stream_len); + } + stringbuf_init(); + } + + virtual + ~stringbuf() + { + delete[] stream; + } + + string + str() const + { + if (pbase() != 0) + return string(stream, pptr()-pbase()); + else + return string(); + } + + void + str(const string& str) + { + delete[] stream; + stream_len = str.size(); + stream = new char_type[stream_len]; + str.copy(stream, stream_len); + stringbuf_init(); + } + + protected: + // The buffer is already in gptr, so if it ends then it is out of data. + virtual int + underflow() + { + return EOF; + } + + virtual int + overflow(int c = EOF) + { + int res; + if (mode & ios::out) + { + if (c != EOF) + { + streamsize old_stream_len = stream_len; + stream_len += 1; + char_type* new_stream = new char_type[stream_len]; + memcpy(new_stream, stream, old_stream_len); + delete[] stream; + stream = new_stream; + stringbuf_sync(gptr()-eback(), pptr()-pbase()); + sputc(c); + res = c; + } + else + res = EOF; + } + else + res = 0; + return res; + } + + virtual streambuf* + setbuf(char_type* s, streamsize n) + { + if (n != 0) + { + delete[] stream; + stream = new char_type[n]; + memcpy(stream, s, n); + stream_len = n; + stringbuf_sync(0, 0); + } + return this; + } + + virtual pos_type + seekoff(off_type off, ios::seek_dir way, int which = ios::in | ios::out) + { + pos_type ret = pos_type(off_type(-1)); + bool testin = which & ios::in && mode & ios::in; + bool testout = which & ios::out && mode & ios::out; + bool testboth = testin && testout && way != ios::cur; + + if (stream_len && ((testin != testout) || testboth)) + { + char_type* beg = stream; + char_type* curi = NULL; + char_type* curo = NULL; + char_type* endi = NULL; + char_type* endo = NULL; + + if (testin) + { + curi = gptr(); + endi = egptr(); + } + if (testout) + { + curo = pptr(); + endo = epptr(); + } + + off_type newoffi = 0; + off_type newoffo = 0; + if (way == ios::beg) + { + newoffi = beg - curi; + newoffo = beg - curo; + } + else if (way == ios::end) + { + newoffi = endi - curi; + newoffo = endo - curo; + } + + if (testin && newoffi + off + curi - beg >= 0 && + endi - beg >= newoffi + off + curi - beg) + { + gbump(newoffi + off); + ret = pos_type(newoffi + off + curi); + } + if (testout && newoffo + off + curo - beg >= 0 && + endo - beg >= newoffo + off + curo - beg) + { + pbump(newoffo + off); + ret = pos_type(newoffo + off + curo); + } + } + return ret; + } + + virtual pos_type + seekpos(pos_type sp, int which = ios::in | ios::out) + { + pos_type ret = seekoff(sp, ios::beg, which); + return ret; + } + + private: + void + stringbuf_sync(streamsize i, streamsize o) + { + if (mode & ios::in) + setg(stream, stream + i, stream + stream_len); + if (mode & ios::out) + { + setp(stream, stream + stream_len); + pbump(o); + } + } + void + stringbuf_init() + { + if (mode & ios::ate) + stringbuf_sync(0, stream_len); + else + stringbuf_sync(0, 0); + } + + private: + ios::open_mode mode; + char_type* stream; + streamsize stream_len; + }; + + class istringstream : public istream { + public: + typedef char char_type; + typedef int int_type; + typedef streampos pos_type; + typedef streamoff off_type; + + explicit + istringstream(int which=ios::in) + : istream(&sb), sb(which | ios::in) + { } + + explicit + istringstream(const string& str, int which=ios::in) + : istream(&sb), sb(str, which | ios::in) + { } + + stringbuf* + rdbuf() const + { + return const_cast<stringbuf*>(&sb); + } + + string + str() const + { + return rdbuf()->str(); + } + void + str(const string& s) + { + rdbuf()->str(s); + } + private: + stringbuf sb; + }; + + class ostringstream : public ostream { + public: + typedef char char_type; + typedef int int_type; + typedef streampos pos_type; + typedef streamoff off_type; + + explicit + ostringstream(int which=ios::out) + : ostream(&sb), sb(which | ios::out) + { } + + explicit + ostringstream(const string& str, int which=ios::out) + : ostream(&sb), sb(str, which | ios::out) + { } + + stringbuf* + rdbuf() const + { + return const_cast<stringbuf*>(&sb); + } + + string + str() const + { + return rdbuf()->str(); + } + + void str(const string& s) + { + rdbuf()->str(s); + } + private: + stringbuf sb; + }; + + class stringstream : public iostream { + public: + typedef char char_type; + typedef int int_type; + typedef streampos pos_type; + typedef streamoff off_type; + + explicit + stringstream(int which=ios::out|ios::in) + : iostream(&sb), sb(which) + { } + + explicit + stringstream(const string& str, int which=ios::out|ios::in) + : iostream(&sb), sb(str, which) + { } + + stringbuf* + rdbuf() const + { + return const_cast<stringbuf*>(&sb); + } + + string + str() const + { + return rdbuf()->str(); + } + + void + str(const string& s) + { + rdbuf()->str(s); + } + private: + stringbuf sb; + }; +}; + +#endif /* not __STRSTREAM__ */ diff --git a/contrib/libstdc++/stl/ChangeLog b/contrib/libstdc++/stl/ChangeLog index 785fb58..14d56ac 100644 --- a/contrib/libstdc++/stl/ChangeLog +++ b/contrib/libstdc++/stl/ChangeLog @@ -1,3 +1,7 @@ +Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. + 1999-11-06 Martin v. Löwis <loewis@informatik.hu-berlin.de> * bitset (class bitset): Declare reference as our friend. diff --git a/contrib/libstdc++/stl/stl_deque.h b/contrib/libstdc++/stl/stl_deque.h index 48a4c76..24a8bfb 100644 --- a/contrib/libstdc++/stl/stl_deque.h +++ b/contrib/libstdc++/stl/stl_deque.h @@ -342,7 +342,7 @@ public: _Base; typedef typename _Base::allocator_type allocator_type; typedef _Deque_iterator<_Tp,_Tp&,_Tp*,__bufsiz> iterator; - typedef _Deque_iterator<_Tp,const _Tp&,const _Tp&, __bufsiz> const_iterator; + typedef _Deque_iterator<_Tp,const _Tp&,const _Tp*, __bufsiz> const_iterator; _Deque_base(const allocator_type& __a, size_t __num_elements) : _Base(__a), _M_start(), _M_finish() @@ -815,7 +815,7 @@ public: // Erase iterator __next = __pos; ++__next; difference_type __index = __pos - _M_start; - if (__index < (size() >> 1)) { + if (static_cast<size_type>(__index) < (size() >> 1)) { copy_backward(_M_start, __pos, __next); pop_front(); } @@ -1048,7 +1048,7 @@ deque<_Tp,_Alloc,__bufsize>::erase(iterator __first, iterator __last) else { difference_type __n = __last - __first; difference_type __elems_before = __first - _M_start; - if (__elems_before < (size() - __n) / 2) { + if (static_cast<size_type>(__elems_before) < (size() - __n) / 2) { copy_backward(_M_start, __first, __last); iterator __new_start = _M_start + __n; destroy(_M_start, __new_start); @@ -1282,7 +1282,7 @@ deque<_Tp,_Alloc,__bufsize>::_M_insert_aux(iterator __pos, { difference_type __index = __pos - _M_start; value_type __x_copy = __x; - if (__index < size() / 2) { + if (static_cast<size_type>(__index) < size() / 2) { push_front(front()); iterator __front1 = _M_start; ++__front1; @@ -1311,7 +1311,7 @@ typename deque<_Tp,_Alloc,__bufsize>::iterator deque<_Tp,_Alloc,__bufsize>::_M_insert_aux(iterator __pos) { difference_type __index = __pos - _M_start; - if (__index < size() / 2) { + if (static_cast<size_type>(__index) < size() / 2) { push_front(front()); iterator __front1 = _M_start; ++__front1; @@ -1344,7 +1344,7 @@ deque<_Tp,_Alloc,__bufsize>::_M_insert_aux(iterator __pos, const difference_type __elems_before = __pos - _M_start; size_type __length = size(); value_type __x_copy = __x; - if (__elems_before < __length / 2) { + if (static_cast<size_type>(__elems_before) < __length / 2) { iterator __new_start = _M_reserve_elements_at_front(__n); iterator __old_start = _M_start; __pos = _M_start + __elems_before; @@ -1403,7 +1403,7 @@ deque<_Tp,_Alloc,__bufsize>::_M_insert_aux(iterator __pos, { const difference_type __elemsbefore = __pos - _M_start; size_type __length = size(); - if (__elemsbefore < __length / 2) { + if (static_cast<size_type>(__elemsbefore) < __length / 2) { iterator __new_start = _M_reserve_elements_at_front(__n); iterator __old_start = _M_start; __pos = _M_start + __elemsbefore; diff --git a/contrib/libstdc++/stl/stl_rope.h b/contrib/libstdc++/stl/stl_rope.h index 44f51ae..fa1e848 100644 --- a/contrib/libstdc++/stl/stl_rope.h +++ b/contrib/libstdc++/stl/stl_rope.h @@ -386,8 +386,8 @@ struct _Rope_RopeRep : public _Rope_rep_base<_CharT,_Alloc> { typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type; _Rope_RopeRep(_Tag __t, int __d, bool __b, size_t __size, allocator_type __a) - : _M_tag(__t), _M_depth(__d), _M_is_balanced(__b), _M_c_string(0), - _Rope_rep_base<_CharT,_Alloc>(__size, __a) + : _Rope_rep_base<_CharT,_Alloc>(__size, __a), + _M_tag(__t), _M_depth(__d), _M_is_balanced(__b), _M_c_string(0) { # ifndef __GC _M_refcount = 1; @@ -562,8 +562,8 @@ struct _Rope_RopeLeaf : public _Rope_RopeRep<_CharT,_Alloc> { /* doesn't matter. */ typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type; _Rope_RopeLeaf(__GC_CONST _CharT* __d, size_t __size, allocator_type __a) - : _M_data(__d) - , _Rope_RopeRep<_CharT,_Alloc>(_S_leaf, 0, true, __size, __a) + : _Rope_RopeRep<_CharT,_Alloc>(_S_leaf, 0, true, __size, __a), + _M_data(__d) { __stl_assert(__size > 0); if (_S_is_basic_char_type((_CharT *)0)) { @@ -593,10 +593,10 @@ struct _Rope_RopeConcatenation : public _Rope_RopeRep<_CharT,_Alloc> { _Rope_RopeConcatenation(_Rope_RopeRep<_CharT,_Alloc>* __l, _Rope_RopeRep<_CharT,_Alloc>* __r, allocator_type __a) - : _M_left(__l), _M_right(__r) - , _Rope_RopeRep<_CharT,_Alloc>( + : _Rope_RopeRep<_CharT,_Alloc>( _S_concat, max(__l->_M_depth, __r->_M_depth) + 1, false, - __l->_M_size + __r->_M_size, __a) + __l->_M_size + __r->_M_size, __a), + _M_left(__l), _M_right(__r) {} # ifndef __GC ~_Rope_RopeConcatenation() { @@ -629,11 +629,12 @@ struct _Rope_RopeFunction : public _Rope_RopeRep<_CharT,_Alloc> { typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type; _Rope_RopeFunction(char_producer<_CharT>* __f, size_t __size, bool __d, allocator_type __a) - : _M_fn(__f) + :_Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a), + _M_fn(__f) # ifndef __GC , _M_delete_when_done(__d) # endif - , _Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a) { + { __stl_assert(__size > 0); # ifdef __GC if (__d) { @@ -693,9 +694,8 @@ struct _Rope_RopeSubstring : public _Rope_RopeFunction<_CharT,_Alloc>, typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type; _Rope_RopeSubstring(_Rope_RopeRep<_CharT,_Alloc>* __b, size_t __s, size_t __l, allocator_type __a) - : _M_base(__b) + : _Rope_RopeFunction<_CharT,_Alloc>(this, __l, false, __a), _M_base(__b) , _M_start(__s) - , _Rope_RopeFunction<_CharT,_Alloc>(this, __l, false, __a) { __stl_assert(__l > 0); __stl_assert(__s + __l <= __b->_M_size); @@ -766,16 +766,16 @@ class _Rope_char_ref_proxy { _My_rope* _M_root; // The whole rope. public: _Rope_char_ref_proxy(_My_rope* __r, size_t __p) : - _M_pos(__p), _M_root(__r), _M_current_valid(false) {} + _M_pos(__p), _M_current_valid(false), _M_root(__r) {} _Rope_char_ref_proxy(const _Rope_char_ref_proxy& __x) : - _M_pos(__x._M_pos), _M_root(__x._M_root), _M_current_valid(false) {} + _M_pos(__x._M_pos), _M_current_valid(false), _M_root(__x._M_root) {} // Don't preserve cache if the reference can outlive the // expression. We claim that's not possible without calling // a copy constructor or generating reference to a proxy // reference. We declare the latter to have undefined semantics. _Rope_char_ref_proxy(_My_rope* __r, size_t __p, _CharT __c) : - _M_pos(__p), _M_root(__r), _M_current(__c), _M_current_valid(true) {} + _M_pos(__p), _M_current(__c), _M_current_valid(true), _M_root(__r) {} inline operator _CharT () const; _Rope_char_ref_proxy& operator= (_CharT __c); _Rope_char_ptr_proxy<_CharT,_Alloc> operator& () const; diff --git a/contrib/libstdc++/tests/ChangeLog b/contrib/libstdc++/tests/ChangeLog index 458f08a..3bcb473 100644 --- a/contrib/libstdc++/tests/ChangeLog +++ b/contrib/libstdc++/tests/ChangeLog @@ -1,3 +1,7 @@ +Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. + Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com) * gcc-2.95.2 Released. diff --git a/contrib/libstdc++/testsuite/ChangeLog b/contrib/libstdc++/testsuite/ChangeLog index 4e983e9..3d76027 100644 --- a/contrib/libstdc++/testsuite/ChangeLog +++ b/contrib/libstdc++/testsuite/ChangeLog @@ -1,3 +1,7 @@ +Fri Mar 16 12:46:19 GMT 2001 Bernd Schmidt (bernds@redhat.com) + + * gcc-2.95.3 Released. + Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com) * gcc-2.95.2 Released. |