diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-11 09:31:13 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-11 09:31:13 +0000 |
| commit | 4bd6f2c53182d36147e668ac780fe985cfc046c7 (patch) | |
| tree | 4562fb2b983eed6cff8660347aed14fbf729767b | |
| parent | a2f6cf8446449fdcea75da7598aa76e1daa261c3 (diff) | |
| download | ppe42-gcc-4bd6f2c53182d36147e668ac780fe985cfc046c7.tar.gz ppe42-gcc-4bd6f2c53182d36147e668ac780fe985cfc046c7.zip | |
2004-08-11 Paolo Carlini <pcarlini@suse.de>
Petur Runolfsson <peturr02@ru.is>
PR libstdc++/16959
* src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
standard streams are constructed.
* testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85797 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
| -rw-r--r-- | libstdc++-v3/src/ios_init.cc | 3 | ||||
| -rw-r--r-- | libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc | 33 |
3 files changed, 44 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 816c4e77580..005df423706 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2004-08-11 Paolo Carlini <pcarlini@suse.de> + Petur Runolfsson <peturr02@ru.is> + + PR libstdc++/16959 + * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the + standard streams are constructed. + * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New. + 2004-08-09 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_bvector.h: Trivial formatting fixes. diff --git a/libstdc++-v3/src/ios_init.cc b/libstdc++-v3/src/ios_init.cc index ae7b8e1b5f2..346ed4ed549 100644 --- a/libstdc++-v3/src/ios_init.cc +++ b/libstdc++-v3/src/ios_init.cc @@ -155,6 +155,9 @@ namespace std // currently synchronized. if (!__sync && __ret) { + // Make sure the standard streams are constructed. + ios_base::Init __init; + ios_base::Init::_S_synced_with_stdio = __sync; // Explicitly call dtors to free any memory that is diff --git a/libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc b/libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc new file mode 100644 index 00000000000..8d3826b15a7 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc @@ -0,0 +1,33 @@ +// Copyright (C) 2004 Free Software Foundation +// +// 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 +// 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. + +// 27.4.2.4 ios_base static members + +#include <ios> + +// libstdc++/16959 +void test01() +{ + std::ios_base::sync_with_stdio(false); +} + +int main() +{ + test01(); + return 0; +} |

