MuellerMP wrote:

Okay so I just realized how I can reduce this fix to 32 lines basically and 
resolve the issues I had with WinEHPrepare.
`PopCleanupBlock` already provides the mechanism for try scope termination if 
we have a cleanup scope for e.g. a destructor call.
If we do not have any cleanup scope available the scope termination mechanism 
is never called though.
So the best fix I can think of now is to just push a noop `TerminateTryScope` 
cleanup on the EHStack.

Since we can push this even after the Catch this resolved my issues with 
WinEHPrepare, since the state handling algorithm now also traverses the scope 
end in the correct order.
So I deleted my backend test and fixes in WinEhPrepare and fixed up my frontend 
tests to be executed without opt passes.

This also resolves the FIXME in the windows-seh-EHa-CppCatchReturn.cpp test.

https://github.com/llvm/llvm-project/pull/167176
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to