Updating EHPadStack with respect to TRY and CATCH instructions
have to be done after checking all other conditions, not before. Because
we did this before checking other conditions, when we encounter TRY
and we want to record the current mismatching range, we already have
popped up the entry from EHPadStack, which we need to access to record
the range.
The baz call in the added test needs try-delegate because the previous
TRY marker placement for quux was placed before baz, because baz's
return value was stackified in RegStackify. If this wasn't stackified
this try-delegate is not strictly necessary, but at the moment it is not
easy to identify cases like this. I plan to transfer nounwind
attributes from the LLVM IR to prevent cases like this. The call in the
test does not have unwind attribute in order to test this bug, but in
many cases of this pattern the previous call has nounwind attribute.