From 6b3fb3441ecf65c8b0e81cf3891a989fe0994df3 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 5 Aug 2008 20:39:48 +0000 Subject: [PATCH] testsuite_api.h (diamond_derivation<>::test): Expect ambiguity together with the standard exception classes. 2008-08-05 Paolo Carlini * testsuite/util/testsuite_api.h (diamond_derivation<>::test): Expect ambiguity together with the standard exception classes. * testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc: Remove xfail. * testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc: Likewise. * testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc: Likewise. * testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_alloc/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_cast/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_exception/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_typeid/cons_virtual_derivation.cc: Likewise. * testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc: Likewise. * testsuite/ext/forced_exception_error/cons_virtual_derivation.cc: Likewise. * testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc: Likewise. * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc: Likewise. From-SVN: r138737 --- libstdc++-v3/ChangeLog | 27 ++++++++++++++++++ .../bad_alloc/cons_virtual_derivation.cc | 3 +- .../bad_cast/cons_virtual_derivation.cc | 3 +- .../bad_exception/cons_virtual_derivation.cc | 3 +- .../bad_typeid/cons_virtual_derivation.cc | 3 +- .../logic_error/cons_virtual_derivation.cc | 3 +- .../runtime_error/cons_virtual_derivation.cc | 3 +- .../system_error/cons_virtual_derivation.cc | 3 +- .../cons_virtual_derivation.cc | 3 +- .../failure/cons_virtual_derivation.cc | 3 +- .../cons_virtual_derivation.cc | 3 +- .../cons_virtual_derivation.cc | 3 +- .../cons_virtual_derivation.cc | 3 +- libstdc++-v3/testsuite/util/testsuite_api.h | 28 +++++++++++++------ 14 files changed, 58 insertions(+), 33 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 9e8a6e6700f..704ae7c810c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,30 @@ +2008-08-05 Paolo Carlini + + * testsuite/util/testsuite_api.h (diamond_derivation<>::test): + Expect ambiguity together with the standard exception classes. + * testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc: Remove + xfail. + * testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc: + Likewise. + * testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc: + Likewise. + * testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc: + Likewise. + * testsuite/18_support/bad_alloc/cons_virtual_derivation.cc: Likewise. + * testsuite/18_support/bad_cast/cons_virtual_derivation.cc: Likewise. + * testsuite/18_support/bad_exception/cons_virtual_derivation.cc: + Likewise. + * testsuite/18_support/bad_typeid/cons_virtual_derivation.cc: + Likewise. + * testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc: + Likewise. + * testsuite/ext/forced_exception_error/cons_virtual_derivation.cc: + Likewise. + * testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc: + Likewise. + * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc: + Likewise. + 2008-08-04 Paolo Carlini * include/bits/postypes.h: Reinstate inclusion of ; diff --git a/libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc index dd0d09b6fb4..b7d28cc34d8 100644 --- a/libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc index 4efc3466cf9..358f0c5dfd6 100644 --- a/libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc index b66ce7d43ed..8fb71fe6399 100644 --- a/libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc index 0da3c9deac8..9d69eb3fd25 100644 --- a/libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc index 5c936e27f16..350f66d9499 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc index 86d5bb5ed71..c8870e51efb 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc index 8e67ce5edae..098fb575dab 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc @@ -1,8 +1,7 @@ // { dg-options "-std=gnu++0x" } -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc index 6cc46c02a51..c31563a3351 100644 --- a/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc @@ -1,8 +1,7 @@ -// { dg-do run { xfail *-*-* } } // { dg-options "-std=gnu++0x" } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc index 1819726a37b..87bf982407f 100644 --- a/libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc index 07396b0b219..35602c71272 100644 --- a/libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc index ddc2c46b8ed..d6e4e8b1b22 100644 --- a/libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc index ae6ef0bd623..81b5214812f 100644 --- a/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc @@ -1,7 +1,6 @@ -// { dg-do run { xfail *-*-* } } // 2007-05-29 Benjamin Kosnik -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 diff --git a/libstdc++-v3/testsuite/util/testsuite_api.h b/libstdc++-v3/testsuite/util/testsuite_api.h index cbb606c42a8..74b25d2d950 100644 --- a/libstdc++-v3/testsuite/util/testsuite_api.h +++ b/libstdc++-v3/testsuite/util/testsuite_api.h @@ -1,7 +1,7 @@ // -*- C++ -*- // Exception testing utils for the C++ library testsuite. // -// Copyright (C) 2007 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008 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 @@ -47,16 +47,19 @@ namespace __gnu_test template struct diamond_derivation_base { - struct diamond_derivation_error: bad_non_virtual, Exception + struct diamond_derivation_error + : bad_non_virtual, Exception { - diamond_derivation_error() : bad_non_virtual(), Exception() { } + diamond_derivation_error() + : bad_non_virtual(), Exception() { } }; }; template struct diamond_derivation_base { - struct diamond_derivation_error: bad_non_virtual, Exception + struct diamond_derivation_error + : bad_non_virtual, Exception { diamond_derivation_error() : bad_non_virtual(), Exception("construct diamond") { } @@ -64,18 +67,25 @@ namespace __gnu_test }; template - struct diamond_derivation: diamond_derivation_base + struct diamond_derivation + : diamond_derivation_base { typedef diamond_derivation_base base_type; typedef typename base_type::diamond_derivation_error error_type; - + + // NB: In the libstdc++-v3 testsuite, all the standard exception + // classes (+ a couple of extensions) are checked: since they + // all derive *non* virtually from std::exception, the expected + // behavior is ambiguity. static void test() { bool test __attribute__((unused)) = true; - try { throw error_type(); } - catch (std::exception const& e) { } - catch (...) + try + { throw error_type(); } + catch (std::exception const&) { VERIFY( false ); } + catch (...) + { VERIFY( true ); } } };