re PR libstdc++/56282 (std::basic_ios<char> broken with -std=c++11 (undefined reference))

2013-02-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/56282
	Revert:
	2013-02-06  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/56193
	* include/bits/basic_ios.h: Replace operator void*() const
	with explicit operator bool() const in C++11 and greater.
	* testsuite/27_io/basic_ios/pr56193.cc: New file.

From-SVN: r195939
This commit is contained in:
Paolo Carlini 2013-02-11 10:30:43 +00:00
parent adb1c4d1e0
commit 3b424b30be
3 changed files with 23 additions and 48 deletions

View File

@ -1,3 +1,14 @@
2013-02-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/56282
Revert:
2013-02-06 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/56193
* include/bits/basic_ios.h: Replace operator void*() const
with explicit operator bool() const in C++11 and greater.
* testsuite/27_io/basic_ios/pr56193.cc: New file.
2013-02-10 François Dumont <fdumont@gcc.gnu.org>
Jonathan Wakely <jwakely.gcc@gmail.com>
@ -30,20 +41,20 @@
PR libstdc++/56216
* include/tr1/special_function_util.h: Remove spurious const
from numeric arguments.
* include/tr1/riemann_zeta.tcc: Ditto.
* include/tr1/exp_integral.tcc: Ditto.
* include/tr1/bessel_function.tcc: Ditto.
* include/tr1/hypergeometric.tcc: Ditto.
* include/tr1/modified_bessel_func.tcc: Ditto.
* include/tr1/poly_laguerre.tcc: Ditto.
* include/tr1/gamma.tcc: Ditto.
* include/tr1/legendre_function.tcc: Ditto.
* include/tr1/poly_hermite.tcc: Ditto.
* include/tr1/ell_integral.tcc: Ditto.
* include/tr1/riemann_zeta.tcc: Likewise.
* include/tr1/exp_integral.tcc: Likewise.
* include/tr1/bessel_function.tcc: Likewise.
* include/tr1/hypergeometric.tcc: Likewise.
* include/tr1/modified_bessel_func.tcc: Likewise.
* include/tr1/poly_laguerre.tcc: Likewise.
* include/tr1/gamma.tcc: Likewise.
* include/tr1/legendre_function.tcc: Likewise.
* include/tr1/poly_hermite.tcc: Likewise.
* include/tr1/ell_integral.tcc: Likewise.
* include/tr1/bessel_function.tcc (__cyl_bessel_ij_series):
If argument is zero return function value.
* testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/pr56216.cc:
New file.
* testsuite/tr1/5_numerical_facilities/special_functions/
08_cyl_bessel_i/pr56216.cc: New.
2013-02-07 Paolo Carlini <paolo.carlini@oracle.com>

View File

@ -112,13 +112,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* This allows you to write constructs such as
* <code>if (!a_stream) ...</code> and <code>while (a_stream) ...</code>
*/
#if __cplusplus >= 201103L
explicit operator bool() const
{ return !this->fail(); }
#else
operator void*() const
{ return this->fail() ? 0 : const_cast<basic_ios*>(this); }
#endif
bool
operator!() const

View File

@ -1,31 +0,0 @@
// { dg-do compile }
// { dg-options "-std=gnu++11" }
// 2013-02-06 Edward Smith-Rowland <3dw4rd@verizon.net>
//
// Copyright (C) 2013 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
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, 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 COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <iostream>
// PR libstdc++/56193
void
test01()
{
std::cout << std::cout; // { dg-error "cannot bind" }
}
// { dg-error "initializing argument" "" { target *-*-* } 602 }