re PR libstdc++/16959 (Segmentation fault in ios_base::sync_with_stdio)

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.

Co-Authored-By: Petur Runolfsson <peturr02@ru.is>

From-SVN: r85797
This commit is contained in:
Paolo Carlini 2004-08-11 09:31:13 +00:00 committed by Paolo Carlini
parent a77655b15f
commit 48dd95f2a4
3 changed files with 44 additions and 0 deletions

View File

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

View File

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

View File

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