| // RUN: %clang_cc1 -std=c++11 -fsyntax-only -fcxx-exceptions -fexceptions -verify %s |
| |
| void func1(int i) { // expected-note{{previous definition is here}} |
| int i; // expected-error{{redefinition of 'i'}} |
| } |
| |
| void func2(int i) try { // expected-note{{previous definition is here}} |
| int i; // expected-error{{redefinition of 'i'}} |
| } catch (...) { |
| } |
| |
| void func3(int i) try { // expected-note {{previous definition is here}} |
| } catch (int i) { // expected-error {{redefinition of 'i'}} |
| } |
| |
| void func4(int i) try { // expected-note{{previous definition is here}} |
| } catch (...) { |
| int i; // expected-error{{redefinition of 'i'}} |
| } |
| |
| void func5() try { |
| int i; |
| } catch (...) { |
| int j = i; // expected-error{{use of undeclared identifier 'i'}} |
| } |
| |
| void func6() try { |
| } catch (int i) { // expected-note{{previous definition is here}} |
| int i; // expected-error{{redefinition of 'i'}} |
| } |
| |
| void func7() { |
| try { |
| } catch (int i) { // expected-note{{previous definition is here}} |
| int i; // expected-error{{redefinition of 'i'}} |
| } |
| } |
| |
| void func8() { |
| int i; |
| try { |
| int i; |
| } catch (...) { |
| } |
| } |
| |
| void func9() { |
| if (bool b = true) |
| try { |
| int b; // FIXME: this probably should be invalid, maybe |
| } catch (...) { |
| } |
| } |
| |
| void func10() { |
| if (bool b = true) |
| if (true) { |
| int b; // FIXME: decide whether this is valid |
| } |
| } |
| |
| void func11(int a) { |
| try { |
| } catch (int a) { // OK |
| } |
| } |