summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-06 13:27:23 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-06 13:27:23 +0000
commit4248af4551d81052ebd35f4bbefa44e06224483d (patch)
treec4d14bcb974fd2b861009c6196a51f477ed8e805 /libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
parent0fd21c35f1bbe6014cd18dc187a9e8e135137ab2 (diff)
downloadgcc-4248af4551d81052ebd35f4bbefa44e06224483d.tar.gz
2010-06-06 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/40296 * libsupc++/exception_ptr.h (exception_ptr::exception_ptr): Replace __safe_bool constructor with nullptr_t constructor in C++0x mode. (exception_ptr::operator bool): Add explicit conversion to bool. (swap(exception_ptr&, exception_ptr&)): Add. (exception_ptr::_M_safe_bool_dummy): Only declare for old ABI. * libsupc++/eh_ptr.cc (exception_ptr::_M_safe_bool_dummy): Move next to other functions retained for ABI compatibility. * testsuite/18_support/exception_ptr/requirements.cc: New. * testsuite/18_support/exception_ptr/requirements_neg.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160340 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc')
-rw-r--r--libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc b/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
new file mode 100644
index 00000000000..b897b506dfe
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+// { dg-require-atomic-builtins "" }
+
+// Copyright (C) 2010 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 <exception>
+
+// test implicit conversions
+void test01()
+{
+ std::exception_ptr p;
+
+ int __attribute__((unused)) i = p; // { dg-error "cannot convert" }
+ bool __attribute__((unused)) b = p; // { dg-error "cannot convert" }
+ void* __attribute__((unused)) v = p; // { dg-error "cannot convert" }
+}
+