// Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. #include "libgo9.h" void use(int *x) { (*x)++; } void callGoFWithDeepStack(int p) { int x[10000]; use(&x[0]); use(&x[9999]); GoF(p); use(&x[0]); use(&x[9999]); } void callGoWithVariousStack(int p) { GoF(0); // call GoF without using much stack callGoFWithDeepStack(p); // call GoF with a deep stack GoF(0); // again on a shallow stack } int main() { callGoWithVariousStack(0); callGoWithVariousStackAndGoFrame(0); // normal execution callGoWithVariousStackAndGoFrame(1); // panic and recover }