Given a function such as:
void foo() noexcept try {
throw;
} catch(...) {
}The clang-5.0 and later behavior is to assume the throw can't be
caught because its child element is checked first. This is incorrect.
We already have logic checking for a catch-all block which can
cope with this, so just move that higher in the priority.