sandboxed-api/sandboxed_api/sandbox2/testcases/symbolize_lib.cc
Wiktor Garbacz a613dda7f2 Test stack unwinding more thoroughly
Check unwinding recursive calls.
Verify we can unwind in absence of unwind tables.

PiperOrigin-RevId: 513506498
Change-Id: Ib87240b7481dae3a4513c944e17a7924a54926e9
2023-03-02 05:09:49 -08:00

26 lines
603 B
C++

#include "sandboxed_api/sandbox2/testcases/symbolize_lib.h"
#include "absl/base/attributes.h"
ABSL_ATTRIBUTE_NOINLINE
ABSL_ATTRIBUTE_NO_TAIL_CALL
void LibRecurseA(void (*cb)(int), int data, int n);
ABSL_ATTRIBUTE_NOINLINE
ABSL_ATTRIBUTE_NO_TAIL_CALL
void LibRecurseB(void (*cb)(int), int data, int n) {
if (n > 1) {
return LibRecurseA(cb, data, n - 1);
}
return cb(data);
}
void LibRecurseA(void (*cb)(int), int data, int n) {
if (n > 1) {
return LibRecurseB(cb, data, n - 1);
}
return cb(data);
}
void LibRecurse(void (*cb)(int), int data, int n) { LibRecurseA(cb, data, n); }