diff options
author | Sergei Barannikov <barannikov88@gmail.com> | 2024-11-27 08:03:47 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-27 08:03:47 +0300 |
commit | 61a23646c977f5530829742fdf5b901b7d9815a2 (patch) | |
tree | f86619761aa360687d0318bbf6bc99aba9a9bf3c /llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll | |
parent | d9c4e9ffe78c34db247b164aa46eea2625b08d3a (diff) | |
download | llvm-61a23646c977f5530829742fdf5b901b7d9815a2.zip llvm-61a23646c977f5530829742fdf5b901b7d9815a2.tar.gz llvm-61a23646c977f5530829742fdf5b901b7d9815a2.tar.bz2 |
[SjLjEHPrepare] Configure call sites correctly (#117656)
After 9fe78db4, the pass inserts `store volatile i32 -1, ptr %call_site`
before all invoke instruction except the one in the entry block, which
has the effect of bypassing landing pads on exceptions.
When configuring the call site for a potentially throwing instruction
check that it is not `InvokeInst` -- they are handled by earlier code.
Diffstat (limited to 'llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll b/llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll index d691a78..5b6dd39 100644 --- a/llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll +++ b/llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll @@ -16,11 +16,15 @@ define ptr @foo(i8 %a, {} %c) personality ptr @baz { entry: ; CHECK: bl __Unwind_SjLj_Register +; CHECK-NEXT: mov r0, #1 +; CHECK-NEXT: str r0, [sp, #{{[0-9]+}}] ; CHECK-NEXT: {{[A-Z][a-zA-Z0-9]*}}: ; CHECK-NEXT: bl _bar ; CHECK: bl __Unwind_SjLj_Resume ; CHECK-LINUX: bl _Unwind_SjLj_Register +; CHECK-LINUX-NEXT: mov r0, #1 +; CHECK-LINUX-NEXT: str r0, [sp, #{{[0-9]+}}] ; CHECK-LINUX-NEXT: .{{[A-Z][a-zA-Z0-9]*}}: ; CHECK-LINUX-NEXT: bl bar ; CHECK-LINUX: bl _Unwind_SjLj_Resume |