Commit 832ca6ac by Jonathan Wakely Committed by Jonathan Wakely

re PR libstdc++/64651 (std::rethrow_exception not found by ADL)

	PR libstdc++/64651
	* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
	to __exception_ptr namespace.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
	Remove unnecessary test variables.

From-SVN: r230147
parent 9a557138
2015-11-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/64651
* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
to __exception_ptr namespace.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
Remove unnecessary test variables.
2015-11-10 Jonathan Wakely <jwakely@redhat.com> 2015-11-10 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/68190 PR libstdc++/68190
......
...@@ -68,6 +68,8 @@ namespace std ...@@ -68,6 +68,8 @@ namespace std
namespace __exception_ptr namespace __exception_ptr
{ {
using std::rethrow_exception;
/** /**
* @brief An opaque pointer to an arbitrary exception. * @brief An opaque pointer to an arbitrary exception.
* @ingroup exceptions * @ingroup exceptions
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
void test01() void test01()
{ {
bool test __attribute__((unused)) = true;
using namespace std; using namespace std;
try { try {
...@@ -54,7 +53,6 @@ void test02() ...@@ -54,7 +53,6 @@ void test02()
void test03() void test03()
{ {
bool test __attribute__((unused)) = true;
using namespace std; using namespace std;
exception_ptr ep; exception_ptr ep;
...@@ -71,7 +69,6 @@ void test03() ...@@ -71,7 +69,6 @@ void test03()
void test04() void test04()
{ {
bool test __attribute__((unused)) = true;
using namespace std; using namespace std;
// Weave the exceptions in an attempt to confuse the machinery. // Weave the exceptions in an attempt to confuse the machinery.
...@@ -103,12 +100,23 @@ void test04() ...@@ -103,12 +100,23 @@ void test04()
} }
} }
void test05()
{
// libstdc++/64651 std::rethrow_exception not found by ADL
// This is not required to work but is a conforming extension.
try {
rethrow_exception(std::make_exception_ptr(0));
} catch(...) {
}
}
int main() int main()
{ {
test01(); test01();
test02(); test02();
test03(); test03();
test04(); test04();
test05();
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment