mirror of
https://github.com/opnsense/src.git
synced 2026-02-26 11:20:29 -05:00
Fix two bugs in __cxa_end_cleanup() Per the EHABI32 specification, __cxa_end_cleanup must take care to preserve registers before calling _Unwind_Resume(). So, libcxxrt uses an assembly stub which preserves caller-saved registers around the call to __cxa_get_cleanup(). But: - it failed to restore them properly, - it did not preserve the link register. Fix both of these problems. This is needed to fix exception unwinding on FreeBSD with LLVM 14. Note that r4 is callee-saved but is pushed onto the stack to preserve stack pointer alignment. Sponsored-by: The FreeBSD Foundation MFC after: 1 week |
||
|---|---|---|
| .. | ||
| abi_namespace.h | ||
| atomic.h | ||
| auxhelper.cc | ||
| cxxabi.h | ||
| dwarf_eh.h | ||
| dynamic_cast.cc | ||
| exception.cc | ||
| FREEBSD-upgrade | ||
| guard.cc | ||
| libelftc_dem_gnu3.c | ||
| LICENSE | ||
| memory.cc | ||
| noexception.cc | ||
| stdexcept.cc | ||
| stdexcept.h | ||
| terminate.cc | ||
| typeinfo.cc | ||
| typeinfo.h | ||
| unwind-arm.h | ||
| unwind-itanium.h | ||
| unwind.h | ||