| // 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); | |
| } |