aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@gcc.gnu.org>2000-12-20 08:04:41 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2000-12-20 08:04:41 +0000
commit49caba3beb81216a5a621c7744103e325e6e39de (patch)
treefa199c504e93c54dec179c7ce12a1418dd0f1e58
parentae75b1773bcd2a728899293cb283e808b9a10b44 (diff)
downloadgcc-49caba3beb81216a5a621c7744103e325e6e39de.zip
gcc-49caba3beb81216a5a621c7744103e325e6e39de.tar.gz
gcc-49caba3beb81216a5a621c7744103e325e6e39de.tar.bz2
ios.cc (ios_base::_M_grow_words(int ix)): Fix libstdc++/1089.
2000-12-19 Curtis Janssen <cljanss@ca.sandia.gov> * src/ios.cc (ios_base::_M_grow_words(int ix)): Fix libstdc++/1089. * testsuite/27_io/ios_base_storage.cc (test01): New file. From-SVN: r38391
-rw-r--r--libstdc++-v3/ChangeLog6
-rwxr-xr-xlibstdc++-v3/configure1
-rw-r--r--libstdc++-v3/configure.in1
-rw-r--r--libstdc++-v3/src/ios.cc6
4 files changed, 12 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 31c4a10..7f1d421 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,6 +1,12 @@
+2000-12-19 Curtis Janssen <cljanss@ca.sandia.gov>
+
+ * src/ios.cc (ios_base::_M_grow_words(int ix)): Fix libstdc++/1089.
+ * testsuite/27_io/ios_base_storage.cc (test01): New file.
+
2000-12-19 Benjamin Kosnik <bkoz@fillmore.constant.com>
* configure.in: Don't turn on long long by default.
+ (gxx_target_include_dir): Adjuse comment.
* configure: Regenerate.
* include/c/bits/std_cstdio.h: Remove c++config.h include.
* src/locale.cc: Formatting tweaks.
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 4dd963c..436e11a 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -19819,6 +19819,7 @@ fi
# specified as build_headers in src/Makefile.am in a target-dependent
# place, or else multiple installs for different compilers will
# overwrite these files.
+# NB: Keep this and gcc/Makefile.in's -DGPLUSPLUS_TOOL_INCLUDE_DIR in sync.
gxx_target_include_dir='$(exec_prefix)/$(target_alias)/include/g++-$(libstdcxx_interface)'
diff --git a/libstdc++-v3/configure.in b/libstdc++-v3/configure.in
index 2823853..d013147 100644
--- a/libstdc++-v3/configure.in
+++ b/libstdc++-v3/configure.in
@@ -279,6 +279,7 @@ fi
# specified as build_headers in src/Makefile.am in a target-dependent
# place, or else multiple installs for different compilers will
# overwrite these files.
+# NB: Keep this and gcc/Makefile.in's -DGPLUSPLUS_TOOL_INCLUDE_DIR in sync.
gxx_target_include_dir='$(exec_prefix)/$(target_alias)/include/g++-$(libstdcxx_interface)'
AC_SUBST(gxx_target_include_dir)
diff --git a/libstdc++-v3/src/ios.cc b/libstdc++-v3/src/ios.cc
index b7b7ff7..873bd3b 100644
--- a/libstdc++-v3/src/ios.cc
+++ b/libstdc++-v3/src/ios.cc
@@ -220,8 +220,10 @@ namespace std {
// _M_clear(_M_rdstate() | badbit); // may throw
return _M_dummy;
}
- do { words[i] = _M_words[i]; } while (++i < _M_word_limit);
- if (_M_words != _M_word_array) delete [] _M_words;
+ for (; i < _M_word_limit; i++)
+ words[i] = _M_words[i];
+ if (_M_words != _M_word_array)
+ delete [] _M_words;
}
do { words[i] = zero; } while (++i < newlimit);