67 lines · cpp
1// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fcxx-exceptions -fexceptions -verify %s2 3void func1(int i) { // expected-note{{previous definition is here}}4 int i; // expected-error{{redefinition of 'i'}}5}6 7void func2(int i) try { // expected-note{{previous definition is here}}8 int i; // expected-error{{redefinition of 'i'}}9} catch (...) {10}11 12void func3(int i) try { // expected-note {{previous definition is here}}13} catch (int i) { // expected-error {{redefinition of 'i'}}14}15 16void func4(int i) try { // expected-note{{previous definition is here}}17} catch (...) {18 int i; // expected-error{{redefinition of 'i'}}19}20 21void func5() try {22 int i;23} catch (...) {24 int j = i; // expected-error{{use of undeclared identifier 'i'}}25}26 27void func6() try {28} catch (int i) { // expected-note{{previous definition is here}}29 int i; // expected-error{{redefinition of 'i'}}30}31 32void func7() {33 try {34 } catch (int i) { // expected-note{{previous definition is here}}35 int i; // expected-error{{redefinition of 'i'}}36 }37}38 39void func8() {40 int i;41 try {42 int i;43 } catch (...) {44 }45}46 47void func9() {48 if (bool b = true)49 try {50 int b; // FIXME: this probably should be invalid, maybe51 } catch (...) {52 }53}54 55void func10() {56 if (bool b = true)57 if (true) {58 int b; // FIXME: decide whether this is valid59 }60}61 62void func11(int a) {63 try {64 } catch (int a) { // OK65 }66}67