69 lines · cpp
1// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -fsyntax-only -verify %s2 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// PR574046struct 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// PR550057void 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(), // ok67 int(n);68}69