14 static volatile uint64_t
sink;
19 __asm__ __volatile__(
"" :::
"memory");
sink ^= (uint64_t)i;
21 extern "C" __attribute__((noinline))
void sjlj_landing_marker(
int i) {
22 __asm__ __volatile__(
"" :::
"memory");
sink ^= (uint64_t)i << 8;
26 volatile uint64_t local = 0;
35 int main(
int argc,
char** argv) {
36 (void)argc; (void)argv;
38 for (
int i = 0; i <
ITERS; ++i) {
44 sjlj_landing_marker(i);
50 fprintf(stderr,
"sig_longjmp: jumps=%d iters=%d sink=%llx\n",
52 return jumps ==
ITERS ? 0 : 1;
static void go_deep(int i, int depth)
int main(int argc, char **argv)
static uint64_t buf[ITERS]
__attribute__((noinline)) void sjlj_try_marker(int i)
static volatile uint64_t sink