llvm-project/libunwind/test
gejin 21b25a1fb3 [libunwind] Support stack unwind in CET environment
Control-flow Enforcement Technology (CET), published by Intel,
introduces shadow stack feature aiming to ensure a return from
a function is directed to where the function was called.
In a CET enabled system, each function call will push return
address into normal stack and shadow stack, when the function
returns, the address stored in shadow stack will be popped and
compared with the return address, program will fail if the 2
addresses don't match.
In exception handling, the control flow may skip some stack frames
and we must adjust shadow stack to avoid violating CET restriction.
In order to achieve this, we count the number of stack frames skipped
and adjust shadow stack by this number before jumping to landing pad.

Reviewed By: hjl.tools, compnerd, MaskRay
Differential Revision: https://reviews.llvm.org/D105968

Signed-off-by: gejin <ge.jin@intel.com>
2021-08-26 16:20:38 +08:00
..
libunwind [libunwind] Support stack unwind in CET environment 2021-08-26 16:20:38 +08:00
CMakeLists.txt [libunwind] Support stack unwind in CET environment 2021-08-26 16:20:38 +08:00
alignment.compile.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
forceunwind.pass.cpp [Arm][Unwind][libc++abi] Add _Unwind_ForcedUnwind to EHABI. 2021-08-11 10:15:53 +02:00
frameheadercache_test.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
libunwind_01.pass.cpp [unwind] Handle UNW_X86_64_RIP register 2021-08-12 12:08:07 -07:00
libunwind_02.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
lit.cfg.py [libunwind] Allow specifying custom Lit config files 2020-06-25 12:15:15 -04:00
lit.site.cfg.in [libunwind] Support stack unwind in CET environment 2021-08-26 16:20:38 +08:00
remember_state_leak.pass.sh.s [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
signal_frame.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
signal_unwind.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
unw_getcontext.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
unwind_leaffunction.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00