18 static volatile uint64_t
sink;
22 __asm__ __volatile__(
"" :::
"memory");
25 extern "C" __attribute__((noinline))
void deep_catch_marker(
int i) {
26 __asm__ __volatile__(
"" :::
"memory");
27 sink ^= (uint64_t)i << 8;
30 static void recurse(
int depth,
int iter) {
32 volatile uint64_t local = depth * 0x1010101ULL;
42 int main(
int argc,
char** argv) {
43 (void)argc; (void)argv;
45 for (
int i = 0; i <
ITERS; ++i) {
49 }
catch (uint64_t v) {
56 fprintf(stderr,
"exc_deep_unwind: depth=%d iters=%d ok=%d sink=%llx\n",
58 return ok ==
ITERS ? 0 : 1;
int main(int argc, char **argv)
static uint64_t buf[ITERS]
__attribute__((noinline)) void deep_try_marker(int i)
static void recurse(int depth, int iter)
static volatile uint64_t sink