/* { dg-do run } */ extern "C" void abort(void); extern "C" void __xtensa_libgcc_window_spill(void); static int call; static int cnt; extern "C" void *memcpy(void *dst, const void *src, unsigned int sz) { char *a = (char *)dst; const char *b = (const char *)src; if (call++ == cnt) __xtensa_libgcc_window_spill(); while (sz--) *a++ = *b++; return dst; } int main() { int i; for (i = 0; i < 100; ++i) { call = 0; cnt = i; try { throw 1; } catch (int v) { if (v != 1) abort (); } } return 0; }