1// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -fsyntax-only -verify %s 2 3void f1() 4{ 5 try { 6 ; 7 } catch(int i) { 8 ; 9 } catch(...) { 10 } 11} 12 13void f2() 14{ 15 try; // expected-error {{expected '{'}} 16 17 try {} 18 catch; // expected-error {{expected '('}} 19 20 try {} 21 catch (...); // expected-error {{expected '{'}} 22 23 try {} 24 catch {} // expected-error {{expected '('}} 25} 26 27void f3() try { 28} catch(...) { 29} 30 31struct A { 32 int i; 33 A(int); 34 A(char); 35 A() try : i(0) {} catch(...) {} 36 void f() try {} catch(...) {} 37 A(float) : i(0) try {} // expected-error {{expected '{' or ','}} 38}; 39 40A::A(char) : i(0) try {} // expected-error {{expected '{' or ','}} 41A::A(int j) try : i(j) {} catch(...) {} 42 43 44 45// PR5740 46struct Type { }; 47 48enum { Type } Kind; 49void f4() { 50 int i = 0; 51 switch (Kind) { 52 case Type: i = 7; break; // no error. 53 } 54} 55 56// PR5500 57void f5() { 58 asm volatile ("":: :"memory"); 59 asm volatile ("": ::"memory"); 60} 61 62int f6() { 63 int k, // expected-note {{change this ',' to a ';' to call 'f6'}} 64 f6(), // expected-error {{expected ';'}} expected-warning {{interpreted as a function declaration}} expected-note {{replace paren}} 65 int n = 0, // expected-error {{expected ';'}} 66 return f5(), // ok 67 int(n); 68} 69