[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / CodeGen / ARM / eh-resume2.ll
blob014d285284f9ab6a6a7b3f98576239cf49d088c7
1 ; RUN: llc < %s -mtriple=armv7-apple-ios -arm-atomic-cfg-tidy=0 | FileCheck %s -check-prefix=IOS
2 ; RUN: llc < %s -mtriple=armv7-apple-watchos -arm-atomic-cfg-tidy=0 | FileCheck %s -check-prefix=IOS
3 ; RUN: llc < %s -mtriple=armv7k-apple-ios -arm-atomic-cfg-tidy=0 | FileCheck %s -check-prefix=WATCHABI
4 ; RUN: llc < %s -mtriple=armv7k-apple-watchos -arm-atomic-cfg-tidy=0 | FileCheck %s -check-prefix=WATCHABI
5 ; RUN: llc < %s -mtriple=armv7-none-gnueabihf -arm-atomic-cfg-tidy=0 | FileCheck %s -check-prefix=EABI
6 ; RUN: llc < %s -mtriple=armv7-none-none -arm-atomic-cfg-tidy=0 | FileCheck %s -check-prefix=ABI
8 ; ARM EABI for C++/__gxx_personality* specifies __cxa_end_cleanup, but for C code / __gcc_personality*
9 ; the _Unwind_Resume is required.
11 declare void @func()
13 declare i32 @__gcc_personality_v0(...)
15 define void @test0() personality ptr @__gcc_personality_v0 {
16 entry:
17   invoke void @func()
18     to label %cont unwind label %lpad
20 cont:
21   ret void
23 lpad:
24   %exn = landingpad { ptr, i32 }
25            cleanup
26   resume { ptr, i32 } %exn
29 ; IOS: __Unwind_SjLj_Resume
30 ; WATCHABI: __Unwind_Resume
31 ; EABI: _Unwind_Resume
32 ; ABI: _Unwind_Resume