// { dg-do run } // Test that unwinding properly restores SP. // Contributed by Jason Merrill void f (int i) { throw i; } int main () { void *sp1 = __builtin_alloca (0); try { f (0); } catch (int) { } void *sp2 = __builtin_alloca (0); return (sp1 != sp2); }