| // RUN: %clang_cc1 -fsyntax-only -verify -fexceptions -fobjc-exceptions %s | 
 |  | 
 | // Note that we're specifically excluding -fcxx-exceptions in the command line above. | 
 |  | 
 | // That this should work even with -fobjc-exceptions is PR9358 | 
 |  | 
 | // PR7243: redeclarations | 
 | namespace test0 { | 
 |   void foo() throw(int); | 
 |   void foo() throw(); | 
 | } | 
 |  | 
 | // Overrides. | 
 | namespace test1 { | 
 |   struct A { | 
 |     virtual void foo() throw(); | 
 |   }; | 
 |  | 
 |   struct B : A { | 
 |     virtual void foo() throw(int); | 
 |   }; | 
 | } | 
 |  | 
 | // Calls from less permissive contexts.  We don't actually do this | 
 | // check, but if we did it should also be disabled under | 
 | // -fno-exceptions. | 
 | namespace test2 { | 
 |   void foo() throw(int); | 
 |   void bar() throw() { | 
 |     foo(); | 
 |   } | 
 | } | 
 |  |