1 // { dg-do assemble }
2 // GROUPS passed rtti
3 // Negative testcase for decls in conditions.
4
main()5 int main()
6 {
7 float i;
8
9 if (int i = 1) // { dg-message "previously" }
10 {
11 char i; // { dg-error "redeclaration" }
12 char j;
13 }
14 else
15 {
16 short i; // { dg-error "redeclaration" }
17 char j;
18 }
19
20 while (int i = 0) // { dg-message "previously" }
21 {
22 int i; // { dg-error "redeclaration" }
23 }
24
25 for (; int i = 0; ) // { dg-message "previously" }
26 {
27 int i; // { dg-error "redeclaration" }
28 }
29
30 switch (int i = 0) // { dg-message "previously" }
31 {
32 default:
33 int i; // { dg-error "redeclaration" }
34 }
35
36 if (struct A { operator int () { return 1; } } *foo = new A) // { dg-error "defined" }
37 ;
38
39 A bar; // { dg-error "not declared" "decl" }
40
41 if (enum A { one, two, three } foo = one) // { dg-error "defined" "def" }
42 // { dg-error "not declared" "expected" { target *-*-* } .-1 }
43 ;
44
45 struct B { operator int () { return 2; } };
46
47 if (struct B * foo = new B)
48 ;
49
50 if (int f () = 1) // { dg-error "declares a function" }
51 ;
52
53 if (int a[2] = {1, 2}) // { dg-error "declares an array" }
54 ;
55
56 }
57