1 // RUN: %clang_cc1 -fsyntax-only -verify -fexceptions -fobjc-exceptions %s
2 // expected-no-diagnostics
3 
4 // Note that we're specifically excluding -fcxx-exceptions in the command line above.
5 
6 // That this should work even with -fobjc-exceptions is PR9358
7 
8 // PR7243: redeclarations
9 namespace test0 {
10   void foo() throw(int);
11   void foo() throw();
12 }
13 
14 // Overrides.
15 namespace test1 {
16   struct A {
17     virtual void foo() throw();
18   };
19 
20   struct B : A {
21     virtual void foo() throw(int);
22   };
23 }
24 
25 // Calls from less permissive contexts.  We don't actually do this
26 // check, but if we did it should also be disabled under
27 // -fno-exceptions.
28 namespace test2 {
29   void foo() throw(int);
bar()30   void bar() throw() {
31     foo();
32   }
33 }
34 
35