diff options
Diffstat (limited to 'libunwind/test/signal_frame.pass.cpp')
-rw-r--r-- | libunwind/test/signal_frame.pass.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libunwind/test/signal_frame.pass.cpp b/libunwind/test/signal_frame.pass.cpp new file mode 100644 index 00000000000..b14e95a5152 --- /dev/null +++ b/libunwind/test/signal_frame.pass.cpp @@ -0,0 +1,25 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// Ensure that functions marked as signal frames are reported as such. + +#include <assert.h> +#include <stdlib.h> +#include <libunwind.h> + +int main(void) { + asm(".cfi_signal_frame"); + unw_cursor_t cursor; + unw_context_t uc; + unw_getcontext(&uc); + unw_init_local(&cursor, &uc); + assert(unw_step(&cursor) > 0); + assert(unw_is_signal_frame(&cursor)); + return 0; +} |