Patchwork [v3] Fix libstdc++/56282

login
register
mail settings
Submitter Paolo Carlini
Date Feb. 11, 2013, 10:36 a.m.
Message ID <5118C999.4000007@oracle.com>
Download mbox | patch
Permalink /patch/219560/
State New
Headers show

Comments

Paolo Carlini - Feb. 11, 2013, 10:36 a.m.
Hi,

no real reason to add this tiny bit of C++11, and the related export 
ungliness, at this late stage in the 4.8 release process. I would say, 
let's just do it in the next ABI.

Committed.

Thanks,
Paolo.

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

Patch

Index: include/bits/basic_ios.h
===================================================================
--- include/bits/basic_ios.h	(revision 195938)
+++ include/bits/basic_ios.h	(working copy)
@@ -112,13 +112,8 @@ 
        *  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
Index: testsuite/27_io/basic_ios/pr56193.cc
===================================================================
--- testsuite/27_io/basic_ios/pr56193.cc	(revision 195938)
+++ testsuite/27_io/basic_ios/pr56193.cc	(working copy)
@@ -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 }