Commit 52d95c21 by Jason Merrill Committed by Jason Merrill

re PR c++/56343 ([C++11] Destructor defaulted on first declaration has wrong…

re PR c++/56343 ([C++11] Destructor defaulted on first declaration has wrong implicit exception specification)

	PR c++/56343
	* class.c (check_bases_and_members): Deduce noexcept after
	checking bases.

From-SVN: r196082
parent 30fa2a51
2013-02-15 Jason Merrill <jason@redhat.com>
PR c++/56343
* class.c (check_bases_and_members): Deduce noexcept after
checking bases.
PR c++/52026
* semantics.c (finish_id_expression): In a template, return
the identifier for a constant variable.
......
......@@ -5245,14 +5245,15 @@ check_bases_and_members (tree t)
cant_have_const_ctor = 0;
no_const_asn_ref = 0;
/* Deduce noexcept on destructors. */
if (cxx_dialect >= cxx0x)
deduce_noexcept_on_destructors (t);
/* Check all the base-classes. */
check_bases (t, &cant_have_const_ctor,
&no_const_asn_ref);
/* Deduce noexcept on destructors. This needs to happen after we've set
triviality flags appropriately for our bases. */
if (cxx_dialect >= cxx0x)
deduce_noexcept_on_destructors (t);
/* Check all the method declarations. */
check_methods (t);
......
// PR c++/56343
// { dg-do compile { target c++11 } }
class B
{
public:
virtual ~B() noexcept(false) { }
};
class D : public B
{
public:
virtual ~D() = default;
};
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