// { dg-do "run" } // { dg-options "-std=gnu++0x" } struct A {}; struct B {}; struct C {}; template void f(int idx) throw(Exceptions...) { if (idx == 0) throw A(); else if (idx == 1) throw B(); else if (idx == 2) throw C(); } extern "C" void abort(); int main() { try { f(0); abort(); } catch (A) { } try { f(1); abort(); } catch (B) { } try { f(2); abort(); } catch (C) { } return 0; }