Skip to content

Commit 50c56b9

Browse files
committed
review changes
1 parent 4e0af39 commit 50c56b9

File tree

3 files changed

+193
-186
lines changed

3 files changed

+193
-186
lines changed

gcc/cp/search.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2196,8 +2196,8 @@ check_final_overrider (tree overrider, tree basefn)
21962196
set_decl_contracts( overrider,
21972197
remap_contracts (overrider,
21982198
basefn,
2199-
/* don't remap result */ false,
2200-
/* remap post conditions */ true));
2199+
/*remap_result*/ false,
2200+
/*remap_post*/ true));
22012201
}
22022202
else if (DECL_HAS_CONTRACTS_P (basefn) && DECL_HAS_CONTRACTS_P (overrider))
22032203
{

gcc/testsuite/g++.dg/contracts/cpp26/P3653-virtual-func/virtual_base.C

Lines changed: 99 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,44 @@
22
// { dg-options "-std=c++2a -fcontracts -fcontract-continuation-mode=off -fcontracts-nonattr -fcontracts-nonattr-inheritance-mode=P3653 " }
33
#include <cassert>
44

5-
struct contract{
5+
struct contract
6+
{
67
int checked = 0;
78
};
89

10+
contract a, b, c;
911

10-
contract a,b,c;
11-
12-
bool checkA(){
13-
a.checked++;
14-
return true;
12+
bool
13+
checkA ()
14+
{
15+
a.checked++;
16+
return true;
1517
}
1618

17-
bool checkB(){
18-
b.checked++;
19-
return true;
19+
bool
20+
checkB ()
21+
{
22+
b.checked++;
23+
return true;
2024
}
2125

22-
bool checkC(){
23-
c.checked++;
24-
return true;
26+
bool
27+
checkC ()
28+
{
29+
c.checked++;
30+
return true;
2531
}
2632

27-
void clear_checks(){
33+
void
34+
clear_checks ()
35+
{
2836
a.checked = b.checked = c.checked = 0;
2937

3038
}
3139

3240
struct Base
3341
{
34-
virtual void f() pre (checkA()){};
42+
virtual void f() pre (checkA ()){};
3543
};
3644

3745

@@ -42,12 +50,12 @@ struct Child0 : virtual Base
4250

4351
struct Child1 : virtual Base
4452
{
45-
virtual void f() pre (checkB()){};
53+
virtual void f() pre (checkB ()){};
4654
};
4755

4856
struct Child2 : virtual Base
4957
{
50-
virtual void f() pre (checkC()){};
58+
virtual void f() pre (checkC ()){};
5159
};
5260

5361

@@ -59,7 +67,7 @@ struct GChild0 : Child0
5967

6068
struct GChild1 : Child0, Child1
6169
{
62-
virtual void f() pre (checkC()){};
70+
virtual void f() pre (checkC ()){};
6371
};
6472

6573
struct GChild2 : Child0, Child1
@@ -90,84 +98,80 @@ int main(int, char**)
9098
GChild2 g2;
9199
GChild3 g3;
92100

93-
clear_checks();
94-
fooBase(&b0);
95-
assert(a.checked > 0);
96-
97-
clear_checks();
98-
fooBase(&c0);
99-
assert(a.checked > 0);
100-
101-
clear_checks();
102-
fooBase(&c1);
103-
assert(a.checked == 0);
104-
assert(b.checked > 0);
105-
106-
clear_checks();
107-
fooBase(&g0);
108-
assert(a.checked > 0);
109-
assert(b.checked == 0);
110-
assert(c.checked == 0);
111-
112-
clear_checks();
113-
fooBase(&g1);
114-
assert(a.checked == 0);
115-
assert(b.checked == 0);
116-
assert(c.checked > 0);
117-
118-
119-
clear_checks();
120-
fooBase(&g2);
121-
assert(a.checked > 0);
122-
assert(b.checked > 0);
123-
assert(c.checked == 0);
124-
125-
126-
clear_checks();
127-
fooBase(&g3);
128-
assert(a.checked == 0);
129-
assert(b.checked > 0);
130-
assert(c.checked > 0);
131-
132-
clear_checks();
133-
b0.f();
134-
assert(a.checked > 0);
135-
136-
clear_checks();
137-
c0.f();
138-
assert(a.checked > 0);
139-
140-
clear_checks();
141-
c1.f();
142-
assert(a.checked == 0);
143-
assert(b.checked > 0);
144-
145-
clear_checks();
146-
g0.f();;
147-
assert(a.checked > 0);
148-
assert(b.checked == 0);
149-
assert(c.checked == 0);
150-
151-
152-
clear_checks();
153-
g1.f();
154-
assert(a.checked == 0);
155-
assert(b.checked == 0);
156-
assert(c.checked > 0);
157-
158-
159-
clear_checks();
160-
g2.f();
161-
assert(a.checked > 0);
162-
assert(b.checked > 0);
163-
assert(c.checked == 0);
164-
165-
clear_checks();
166-
g3.f();
167-
assert(a.checked == 0);
168-
assert(b.checked > 0);
169-
assert(c.checked > 0);
170-
101+
clear_checks ();
102+
fooBase (&b0);
103+
assert (a.checked > 0);
104+
105+
clear_checks ();
106+
fooBase (&c0);
107+
assert (a.checked > 0);
108+
109+
clear_checks ();
110+
fooBase (&c1);
111+
assert (a.checked == 0);
112+
assert (b.checked > 0);
113+
114+
clear_checks ();
115+
fooBase (&g0);
116+
assert (a.checked > 0);
117+
assert (b.checked == 0);
118+
assert (c.checked == 0);
119+
120+
clear_checks ();
121+
fooBase (&g1);
122+
assert (a.checked == 0);
123+
assert (b.checked == 0);
124+
assert (c.checked > 0);
125+
126+
clear_checks ();
127+
fooBase (&g2);
128+
assert (a.checked > 0);
129+
assert (b.checked > 0);
130+
assert (c.checked == 0);
131+
132+
clear_checks ();
133+
fooBase (&g3);
134+
assert (a.checked == 0);
135+
assert (b.checked > 0);
136+
assert (c.checked > 0);
137+
138+
clear_checks ();
139+
b0.f ();
140+
assert (a.checked > 0);
141+
142+
clear_checks ();
143+
c0.f ();
144+
assert (a.checked > 0);
145+
146+
clear_checks ();
147+
c1.f ();
148+
assert (a.checked == 0);
149+
assert (b.checked > 0);
150+
151+
clear_checks ();
152+
g0.f ();
153+
;
154+
assert (a.checked > 0);
155+
assert (b.checked == 0);
156+
assert (c.checked == 0);
157+
158+
clear_checks ();
159+
g1.f ();
160+
assert (a.checked == 0);
161+
assert (b.checked == 0);
162+
assert (c.checked > 0);
163+
164+
clear_checks ();
165+
g2.f ();
166+
assert (a.checked > 0);
167+
assert (b.checked > 0);
168+
assert (c.checked == 0);
169+
170+
clear_checks ();
171+
g3.f ();
172+
assert (a.checked == 0);
173+
assert (b.checked > 0);
174+
assert (c.checked > 0);
171175

172176
return 0;
173177
}

0 commit comments

Comments
 (0)