1#ifndef ESBMC_UTIL_STACK_BUDGET_H
2#define ESBMC_UTIL_STACK_BUDGET_H
46 const std::uintptr_t now = here();
47 return static_cast<std::ptrdiff_t
>(now > base ? now - base : base - now);
59 std::uintptr_t here()
const
61 return reinterpret_cast<std::uintptr_t
>(&marker);
65 static thread_local std::uintptr_t base;
66 static thread_local unsigned depth;
70thread_local std::uintptr_t stack_budget_guardt<Tag>::base = 0;
72thread_local unsigned stack_budget_guardt<Tag>::depth = 0;
stack_budget_guardt(const stack_budget_guardt &)=delete
~stack_budget_guardt()
Definition stack_budget.h:33
stack_budget_guardt & operator=(const stack_budget_guardt &)=delete
std::ptrdiff_t bytes_used() const
Stack consumed since the outermost level.
Definition stack_budget.h:43
bool exceeded(std::ptrdiff_t budget) const
Definition stack_budget.h:50
stack_budget_guardt()
Definition stack_budget.h:27
constexpr std::ptrdiff_t default_stack_budget
Default ceiling for a walk.
Definition stack_budget.h:76