On 06/19/2013 08:22 PM, Paolo Carlini wrote:
If, in check_bases_and_members, I simply move deduce_noexcept_on_destructors after check_methods and nothing else, all the new testcases are fine + the tests added for Core/1123, but there are regressions, for example for testcases involving virtual destructors, eg, debug/dwarf2/non-virtual-thunk.C.
Probably because we need to update the exception specification before we check for overrides, since that check will look at the exception specification.
Let's move
if (DECL_DESTRUCTOR_P (x) && user_provided_p (x)) TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = 1;
to the top of the loop in check_methods, and call deduce_noexcept_on_destructor under the same if.
Jason