1// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fcxx-exceptions -fexceptions -verify %s 2 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, maybe 51 } catch (...) { 52 } 53} 54 55void func10() { 56 if (bool b = true) 57 if (true) { 58 int b; // FIXME: decide whether this is valid 59 } 60} 61 62void func11(int a) { 63 try { 64 } catch (int a) { // OK 65 } 66} 67