1*9ca5c425SRichard Smith // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s 202e85f3bSRichard Smith f()302e85f3bSRichard Smithvoid f() { 402e85f3bSRichard Smith int b; 502e85f3bSRichard Smith int arr[] = {1, 2, 3}; 602e85f3bSRichard Smith 702e85f3bSRichard Smith if (bool b = true) // expected-note 2{{previous definition}} 802e85f3bSRichard Smith bool b; // expected-error {{redefinition}} 902e85f3bSRichard Smith else 1002e85f3bSRichard Smith int b; // expected-error {{redefinition}} 1102e85f3bSRichard Smith while (bool b = true) // expected-note {{previous definition}} 1202e85f3bSRichard Smith int b; // expected-error {{redefinition}} 1302e85f3bSRichard Smith for (int c; // expected-note 2{{previous definition}} 1402e85f3bSRichard Smith bool c = true;) // expected-error {{redefinition}} 1502e85f3bSRichard Smith double c; // expected-error {{redefinition}} 1602e85f3bSRichard Smith switch (int n = 37 + 5) // expected-note {{previous definition}} 1702e85f3bSRichard Smith int n; // expected-error {{redefinition}} 1802e85f3bSRichard Smith for (int a : arr) // expected-note {{previous definition}} 1902e85f3bSRichard Smith int a = 0; // expected-error {{redefinition}} 2002e85f3bSRichard Smith 2102e85f3bSRichard Smith if (bool b = true) { // expected-note 2{{previous definition}} 2202e85f3bSRichard Smith int b; // expected-error {{redefinition}} 2302e85f3bSRichard Smith } else { 2402e85f3bSRichard Smith int b; // expected-error {{redefinition}} 2502e85f3bSRichard Smith } 2602e85f3bSRichard Smith while (bool b = true) { // expected-note {{previous definition}} 2702e85f3bSRichard Smith int b; // expected-error {{redefinition}} 2802e85f3bSRichard Smith } 2902e85f3bSRichard Smith for (int c; // expected-note 2{{previous definition}} 3002e85f3bSRichard Smith bool c = true;) { // expected-error {{redefinition}} 3102e85f3bSRichard Smith double c; // expected-error {{redefinition}} 3202e85f3bSRichard Smith } 3302e85f3bSRichard Smith switch (int n = 37 + 5) { // expected-note {{previous definition}} 3402e85f3bSRichard Smith int n; // expected-error {{redefinition}} 3502e85f3bSRichard Smith } 3602e85f3bSRichard Smith for (int &a : arr) { // expected-note {{previous definition}} 3702e85f3bSRichard Smith int a = 0; // expected-error {{redefinition}} 3802e85f3bSRichard Smith } 3902e85f3bSRichard Smith 4002e85f3bSRichard Smith if (bool b = true) {{ // expected-note {{previous definition}} 4102e85f3bSRichard Smith bool b; 4202e85f3bSRichard Smith }} else { 4302e85f3bSRichard Smith int b; // expected-error {{redefinition}} 4402e85f3bSRichard Smith } 4502e85f3bSRichard Smith if (bool b = true) { // expected-note {{previous definition}} 4602e85f3bSRichard Smith bool b; // expected-error {{redefinition}} 4702e85f3bSRichard Smith } else {{ 4802e85f3bSRichard Smith int b; 4902e85f3bSRichard Smith }} 5002e85f3bSRichard Smith if (bool b = true) {{ 5102e85f3bSRichard Smith bool b; 5202e85f3bSRichard Smith }} else {{ 5302e85f3bSRichard Smith int b; 5402e85f3bSRichard Smith }} 5502e85f3bSRichard Smith while (bool b = true) {{ 5602e85f3bSRichard Smith int b; 5702e85f3bSRichard Smith }} 5802e85f3bSRichard Smith for (int c; // expected-note {{previous definition}} 5902e85f3bSRichard Smith bool c = true; ) {{ // expected-error {{redefinition}} 6002e85f3bSRichard Smith double c; 6102e85f3bSRichard Smith }} 6202e85f3bSRichard Smith switch (int n = 37 + 5) {{ 6302e85f3bSRichard Smith int n; 6402e85f3bSRichard Smith }} 6502e85f3bSRichard Smith for (int &a : arr) {{ 6602e85f3bSRichard Smith int a = 0; 6702e85f3bSRichard Smith }} 6802e85f3bSRichard Smith } 69