p4-0x.cpp revision ad762fcdc16b9e4705b12b09d92b8c026212b906
1// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s
2
3void f() {
4  int b;
5  int arr[] = {1, 2, 3};
6
7  if (bool b = true) // expected-note 2{{previous definition}}
8    bool b; // expected-error {{redefinition}}
9  else
10    int b; // expected-error {{redefinition}}
11  while (bool b = true) // expected-note {{previous definition}}
12    int b; // expected-error {{redefinition}}
13  for (int c; // expected-note 2{{previous definition}}
14       bool c = true;) // expected-error {{redefinition}}
15    double c; // expected-error {{redefinition}}
16  switch (int n = 37 + 5) // expected-note {{previous definition}}
17    int n; // expected-error {{redefinition}}
18  for (int a : arr) // expected-note {{previous definition}}
19    int a = 0; // expected-error {{redefinition}}
20
21  if (bool b = true) { // expected-note 2{{previous definition}}
22    int b; // expected-error {{redefinition}}
23  } else {
24    int b; // expected-error {{redefinition}}
25  }
26  while (bool b = true) { // expected-note {{previous definition}}
27    int b; // expected-error {{redefinition}}
28  }
29  for (int c; // expected-note 2{{previous definition}}
30       bool c = true;) { // expected-error {{redefinition}}
31    double c; // expected-error {{redefinition}}
32  }
33  switch (int n = 37 + 5) { // expected-note {{previous definition}}
34    int n; // expected-error {{redefinition}}
35  }
36  for (int &a : arr) { // expected-note {{previous definition}}
37    int a = 0; // expected-error {{redefinition}}
38  }
39
40  if (bool b = true) {{ // expected-note {{previous definition}}
41    bool b;
42  }} else {
43    int b; // expected-error {{redefinition}}
44  }
45  if (bool b = true) { // expected-note {{previous definition}}
46    bool b; // expected-error {{redefinition}}
47  } else {{
48    int b;
49  }}
50  if (bool b = true) {{
51    bool b;
52  }} else {{
53    int b;
54  }}
55  while (bool b = true) {{
56    int b;
57  }}
58  for (int c; // expected-note {{previous definition}}
59       bool c = true; ) {{ // expected-error {{redefinition}}
60    double c;
61  }}
62  switch (int n = 37 + 5) {{
63    int n;
64  }}
65  for (int &a : arr) {{
66    int a = 0;
67  }}
68}
69