annotate gcc/testsuite/g++.dg/warn/Wshadow-local-2.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do compile } */
kono
parents:
diff changeset
2 /* { dg-options -Wshadow=local } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 class Bar {
kono
parents:
diff changeset
5 };
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 class ChildBar : public Bar {
kono
parents:
diff changeset
8 };
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 Bar bar; // { dg-bogus "shadowed declaration" }
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 class Foo {
kono
parents:
diff changeset
13 private:
kono
parents:
diff changeset
14 int val;
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 public:
kono
parents:
diff changeset
17 int func1(int x) {
kono
parents:
diff changeset
18 int val; // { dg-bogus "shadows a member" }
kono
parents:
diff changeset
19 val = x;
kono
parents:
diff changeset
20 return val;
kono
parents:
diff changeset
21 }
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 int func2(int i) { // { dg-message "shadowed declaration is here" }
kono
parents:
diff changeset
24 int a = 3; // { dg-message "shadowed declaration is here" }
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 for (int i = 0; i < 5; ++i) { // { dg-warning "shadows a parameter" }
kono
parents:
diff changeset
27 for (int i = 0; i < 3; ++i) { // { dg-warning "shadows a previous local" }
kono
parents:
diff changeset
28 int a = i; // { dg-warning "shadows a previous local" }
kono
parents:
diff changeset
29 func1(a);
kono
parents:
diff changeset
30 }
kono
parents:
diff changeset
31 }
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 return a;
kono
parents:
diff changeset
34 }
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 int func3() {
kono
parents:
diff changeset
37 int bar; // { dg-bogus "shadows a global" }
kono
parents:
diff changeset
38 float func1 = 0.3; // { dg-bogus "shadows a member" }
kono
parents:
diff changeset
39 int f = 5; // { dg-message "shadowed declaration is here" }
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 if (func1 > 1) {
kono
parents:
diff changeset
42 float f = 2.0; // { dg-warning "shadows a previous local" }
kono
parents:
diff changeset
43 bar = f;
kono
parents:
diff changeset
44 }
kono
parents:
diff changeset
45 else
kono
parents:
diff changeset
46 bar = 1;
kono
parents:
diff changeset
47 return bar;
kono
parents:
diff changeset
48 }
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 void func4() {
kono
parents:
diff changeset
51 Bar *bar; // { dg-message "shadowed declaration is here" }
kono
parents:
diff changeset
52 ChildBar *cbp; // { dg-message "shadowed declaration is here" }
kono
parents:
diff changeset
53 Bar *bp; // { dg-message "shadowed declaration is here" }
kono
parents:
diff changeset
54 if (val) {
kono
parents:
diff changeset
55 int bar; // { dg-warning "shadows a previous local" }
kono
parents:
diff changeset
56 Bar *cbp; // { dg-warning "shadows a previous local" }
kono
parents:
diff changeset
57 ChildBar *bp; // { dg-warning "shadows a previous local" }
kono
parents:
diff changeset
58 func1(bar);
kono
parents:
diff changeset
59 }
kono
parents:
diff changeset
60 }
kono
parents:
diff changeset
61 };
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 // { dg-message "shadowed declaration is here" "" { target *-*-* } 26 }