|  | // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -fsyntax-only -verify %s | 
|  |  | 
|  | void f1() | 
|  | { | 
|  | try { | 
|  | ; | 
|  | } catch(int i) { | 
|  | ; | 
|  | } catch(...) { | 
|  | } | 
|  | } | 
|  |  | 
|  | void f2() | 
|  | { | 
|  | try; // expected-error {{expected '{'}} | 
|  |  | 
|  | try {} | 
|  | catch; // expected-error {{expected '('}} | 
|  |  | 
|  | try {} | 
|  | catch (...); // expected-error {{expected '{'}} | 
|  |  | 
|  | try {} | 
|  | catch {} // expected-error {{expected '('}} | 
|  | } | 
|  |  | 
|  | void f3() 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(...) {} | 
|  |  | 
|  |  | 
|  |  | 
|  | // PR5740 | 
|  | struct Type { }; | 
|  |  | 
|  | enum { Type } Kind; | 
|  | void f4() { | 
|  | int i = 0; | 
|  | switch (Kind) { | 
|  | case Type: i = 7; break;  // no error. | 
|  | } | 
|  | } | 
|  |  | 
|  | // PR5500 | 
|  | void f5() { | 
|  | asm volatile ("":: :"memory"); | 
|  | asm volatile ("": ::"memory"); | 
|  | } | 
|  |  | 
|  | int f6() { | 
|  | int k, // expected-note {{change this ',' to a ';' to call 'f6'}} | 
|  | f6(), // expected-error {{expected ';'}} expected-warning {{interpreted as a function declaration}} expected-note {{replace paren}} | 
|  | int n = 0, // expected-error {{expected ';'}} | 
|  | return f5(), // ok | 
|  | int(n); | 
|  | } |