mirror of
https://github.com/ziglang/zig.git
synced 2024-11-27 07:32:44 +00:00
ec96095efd
Renamed dwarf_unwinding -> stack_iterator to better reflect that it's not just DWARF unwinding. Added a test for unwinding with a frame pointer.
23 lines
567 B
C
23 lines
567 B
C
#include <stdint.h>
|
|
|
|
#ifndef LIB_API
|
|
#define LIB_API
|
|
#endif
|
|
|
|
__attribute__((noinline)) void frame1(
|
|
void** expected,
|
|
void** unwound,
|
|
void (*frame2)(void** expected, void** unwound)) {
|
|
expected[3] = __builtin_extract_return_addr(__builtin_return_address(0));
|
|
frame2(expected, unwound);
|
|
}
|
|
|
|
LIB_API void frame0(
|
|
void** expected,
|
|
void** unwound,
|
|
void (*frame2)(void** expected, void** unwound)) {
|
|
expected[4] = __builtin_extract_return_addr(__builtin_return_address(0));
|
|
frame1(expected, unwound, frame2);
|
|
}
|
|
|