namazso wrote: While I haven't checked how exactly this PR interacts with SEH, just here because https://github.com/llvm/llvm-project/issues/54922#issuecomment-2984928111 , I'd like to point out that https://clang.llvm.org/docs/MSVCCompatibility.html has the following snippet for SEH:
> Asynchronous Exceptions (SEH): Partial. Structured exceptions (__try / > __except / __finally) mostly work on x86 and x64. LLVM does not model > asynchronous exceptions, so it is currently impossible to catch an > asynchronous exception generated in the same frame as the catching __try. If this patch will remove the +1 offset from the beginning of the call instruction as well, then if that throws it will be caught in the same frame, which is "impossible" (not sure what the practical implications of this are). Call can throw when calling indirect from invalid memory. As it stands, this patch breaks this "functionality", as now these exceptions will be caught in the inner `__try`. While MSVC never worked this way, this would not fix the whole SEH discrepancy, while effectively "removing" a feature. https://github.com/llvm/llvm-project/pull/144745 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits