| // RUN: clang-cc -fsyntax-only -verify %s | 
 |  | 
 | void f() | 
 | { | 
 |   try { | 
 |     ; | 
 |   } catch(int i) { | 
 |     ; | 
 |   } catch(...) { | 
 |   } | 
 | } | 
 |  | 
 | void g() | 
 | { | 
 |   try; // expected-error {{expected '{'}} | 
 |  | 
 |   try {} | 
 |   catch; // expected-error {{expected '('}} | 
 |  | 
 |   try {} | 
 |   catch (...); // expected-error {{expected '{'}} | 
 |  | 
 |   try {} | 
 |   catch {} // expected-error {{expected '('}} | 
 | } | 
 |  | 
 | void h() try { | 
 | } catch(...) { | 
 | } | 
 |  | 
 | struct A { | 
 |   int i; | 
 |   A(int); | 
 |   A(char); | 
 |   A() try : i(0) {} catch(...) {} | 
 |   void f() try {} catch(...) {} | 
 |   A(float) : i(0) try {} // expected-error {{expected '{' or ','}} | 
 | }; | 
 |  | 
 | A::A(char) : i(0) try {} // expected-error {{expected '{' or ','}} | 
 | A::A(int j) try : i(j) {} catch(...) {} |