// RUN: --debugger 'dbgeng' -- %s
volatile bool shutting_down_ = true;
volatile bool tearing_down_ = true;
void __attribute__((optnone)) setCrashString(const char *) {}
void __attribute__((optnone)) doTailCall() {}
extern "C" void __declspec(noreturn) abort();
void __forceinline inlineCrashFrame() {
if (shutting_down_ || tearing_down_) {
setCrashString("crashing");
abort();
}
}
void __declspec(noinline) callerOfInlineCrashFrame(bool is_keeping_alive) {
if (is_keeping_alive)
inlineCrashFrame();
else
doTailCall();
}
int __attribute__((optnone)) main() {
callerOfInlineCrashFrame(true);
}
DexExpectProgramState({'frames':[
{'function': 'inlineCrashFrame', 'location':{'lineno' : ref('stop')} },
{'function': 'callerOfInlineCrashFrame'},
{'function': 'main'}
]})
*/