mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 12:36:37 +00:00

When building libunwind with LTO, we found that routines, like _Unwind_RaiseException were marked `nounwind`. This causes problems when libunwind is then used with exception throwing code, since many of the routines are marked `nounwind` and the compiler infers that something like a try/catch block cannot throw resulting in a miscompile (see #120657). Similarly, in #56825, it was pointed out that marking _Unwind_Resume as `nounwind` causes bad exception table generation. This patch adds the `-fexceptions` flag to the build of the C files that define these routines, as proposed in #56825. Fixes #56825 #120657 --------- Co-authored-by: Petr Hosek <phosek@google.com>