// { dg-do run { target c++11 } } 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; }