#
710c1ceb |
| 17-May-2017 |
Reid Kleckner <rnk@google.com> |
Re-land r303274: "[CrashRecovery] Use SEH __try instead of VEH when available"
We have to check gCrashRecoveryEnabled before using __try.
In other words, SEH works too well and we ended up recoveri
Re-land r303274: "[CrashRecovery] Use SEH __try instead of VEH when available"
We have to check gCrashRecoveryEnabled before using __try.
In other words, SEH works too well and we ended up recovering from crashes in implicit module builds that we weren't supposed to. Only libclang is supposed to enable CrashRecoveryContext to allow implicit module builds to crash.
llvm-svn: 303279
show more ...
|
#
91fea018 |
| 17-May-2017 |
Reid Kleckner <rnk@google.com> |
[CrashRecovery] Use SEH __try instead of VEH when available
Summary: It avoids problems when other libraries raise exceptions. In particular, OutputDebugString raises an exception that the debugger
[CrashRecovery] Use SEH __try instead of VEH when available
Summary: It avoids problems when other libraries raise exceptions. In particular, OutputDebugString raises an exception that the debugger is supposed to catch and suppress. VEH kicks in first right now, and that is entirely incorrect.
Unfortunately, GCC does not support SEH, so I've kept the old buggy VEH codepath around. We could fix it with SetUnhandledExceptionFilter, but that is not per-thread, so a well-behaved library shouldn't set it.
Reviewers: zturner
Subscribers: llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D33261
llvm-svn: 303274
show more ...
|