Skip to content

Commit 4b6b810

Browse files
committed
testsuite, c++, contracts: Update P2900 contracts cases.
We now changed the contracts merging code to refer always to the first declaration of a function with contracts (this is the canonical decl from the PoV of the paper). This patch adjusts the testcases that used to point to re-declarations to point correctly to that first decl. Signed-off-by: Iain Sandoe <[email protected]>
1 parent b777fc7 commit 4b6b810

File tree

7 files changed

+15
-14
lines changed

7 files changed

+15
-14
lines changed

gcc/testsuite/g++.dg/contracts/cpp26-attr/contracts-friend1.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ int main(int, char**) {
3333
// { dg-output "contract violation in function fn0 at .*.C:7: .*(\n|\r\n|\r)" }
3434
// { dg-output "contract violation in function X::fns0 at .*.C:9: .*(\n|\r\n|\r)" }
3535
// { dg-output "contract violation in function X::fns1 at .*.C:10: .*(\n|\r\n|\r)" }
36-
// { dg-output "contract violation in function X::fns2 at .*.C:19: .*(\n|\r\n|\r)" }
36+
// { dg-output "contract violation in function X::fns2 at .*.C:11: .*(\n|\r\n|\r)" }

gcc/testsuite/g++.dg/contracts/cpp26-attr/contracts-nested-class1.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct Outer {
1313
friend void Inner::fn(int n) [[ pre: n > 0 && bob > 1 ]]; // { dg-error "not declared" }
1414

1515
friend void gfn(int p) [[ pre: p > 0 ]];
16-
friend void gfn(int q) [[ pre: q > 1 ]]; // { dg-error "'q' was not declared" }
16+
friend void gfn(int q) [[ pre: q > 1 ]];
1717

1818
friend void gfn2(int q);
1919
friend void gfn2(int p) [[ pre: p > 0 ]] { } // { dg-error "declaration adds contracts" }

gcc/testsuite/g++.dg/contracts/cpp26-attr/contracts-tmpl-spec2.C

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,9 @@ int main(int, char**)
359359
// { dg-output {contract violation in function G3<double, double>::f at .*:125: s > 0(\n|\r\n|\r)} }
360360
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
361361
// { dg-output {G3 general T S(\n|\r\n|\r)} }
362-
// { dg-output {contract violation in function G3<int, int>::f at .*:139: t > 1(\n|\r\n|\r)} }
362+
// { dg-output {contract violation in function G3<int, int>::f at .*:134: t > 1(\n|\r\n|\r)} }
363363
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
364-
// { dg-output {contract violation in function G3<int, int>::f at .*:140: s > 1(\n|\r\n|\r)} }
364+
// { dg-output {contract violation in function G3<int, int>::f at .*:134: s > 1(\n|\r\n|\r)} }
365365
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
366366
// { dg-output {G3 partial int S(\n|\r\n|\r)} }
367367
// { dg-output {contract violation in function G3<int, double>::f at .*:147: t > 2(\n|\r\n|\r)} }
@@ -374,9 +374,9 @@ int main(int, char**)
374374
// { dg-output {contract violation in function G3<char, char>::f at .*:125: s > 0(\n|\r\n|\r)} }
375375
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
376376
// { dg-output {G3 general T S(\n|\r\n|\r)} }
377-
// { dg-output {contract violation in function G3<int, char>::f at .*:139: t > 1(\n|\r\n|\r)} }
377+
// { dg-output {contract violation in function G3<int, char>::f at .*:134: t > 1(\n|\r\n|\r)} }
378378
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
379-
// { dg-output {contract violation in function G3<int, char>::f at .*:140: s > 1(\n|\r\n|\r)} }
379+
// { dg-output {contract violation in function G3<int, char>::f at .*:134: s > 1(\n|\r\n|\r)} }
380380
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
381381
// { dg-output {G3 partial int S(\n|\r\n|\r)} }
382382
// { dg-output {G3 full int C(\n|\r\n|\r)} }

gcc/testsuite/g++.dg/contracts/cpp26/contracts-friend1.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ int main(int, char**) {
3333
// { dg-output "contract violation in function fn0 at .*.C:7: .*(\n|\r\n|\r)" }
3434
// { dg-output "contract violation in function X::fns0 at .*.C:9: .*(\n|\r\n|\r)" }
3535
// { dg-output "contract violation in function X::fns1 at .*.C:10: .*(\n|\r\n|\r)" }
36-
// { dg-output "contract violation in function X::fns2 at .*.C:19: .*(\n|\r\n|\r)" }
36+
// { dg-output "contract violation in function X::fns2 at .*.C:11: .*(\n|\r\n|\r)" }

gcc/testsuite/g++.dg/contracts/cpp26/contracts-nested-class1.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct Outer {
1313
friend void Inner::fn(int n) pre ( n > 0 && bob > 1 ); // { dg-error "not declared" }
1414

1515
friend void gfn(int p) pre ( p > 0 );
16-
friend void gfn(int q) pre ( q > 1 ); // { dg-error "'q' was not declared" }
16+
friend void gfn(int q) pre ( q > 1 );
1717

1818
friend void gfn2(int q);
1919
friend void gfn2(int p) pre ( p > 0 ) { } // { dg-error "declaration adds contracts" }

gcc/testsuite/g++.dg/contracts/cpp26/contracts-tmpl-spec2.C

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,9 @@ int main(int, char**)
359359
// { dg-output {contract violation in function G3<double, double>::f at .*:125: s > 0(\n|\r\n|\r)} }
360360
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
361361
// { dg-output {G3 general T S(\n|\r\n|\r)} }
362-
// { dg-output {contract violation in function G3<int, int>::f at .*:139: t > 1(\n|\r\n|\r)} }
362+
// { dg-output {contract violation in function G3<int, int>::f at .*:134: t > 1(\n|\r\n|\r)} }
363363
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
364-
// { dg-output {contract violation in function G3<int, int>::f at .*:140: s > 1(\n|\r\n|\r)} }
364+
// { dg-output {contract violation in function G3<int, int>::f at .*:134: s > 1(\n|\r\n|\r)} }
365365
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
366366
// { dg-output {G3 partial int S(\n|\r\n|\r)} }
367367
// { dg-output {contract violation in function G3<int, double>::f at .*:147: t > 2(\n|\r\n|\r)} }
@@ -374,9 +374,9 @@ int main(int, char**)
374374
// { dg-output {contract violation in function G3<char, char>::f at .*:125: s > 0(\n|\r\n|\r)} }
375375
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
376376
// { dg-output {G3 general T S(\n|\r\n|\r)} }
377-
// { dg-output {contract violation in function G3<int, char>::f at .*:139: t > 1(\n|\r\n|\r)} }
377+
// { dg-output {contract violation in function G3<int, char>::f at .*:134: t > 1(\n|\r\n|\r)} }
378378
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
379-
// { dg-output {contract violation in function G3<int, char>::f at .*:140: s > 1(\n|\r\n|\r)} }
379+
// { dg-output {contract violation in function G3<int, char>::f at .*:134: s > 1(\n|\r\n|\r)} }
380380
// { dg-output ".assertion_kind: pre, semantic: observe, mode: predicate_false, terminating: no.(\n|\r\n|\r)" }
381381
// { dg-output {G3 partial int S(\n|\r\n|\r)} }
382382
// { dg-output {G3 full int C(\n|\r\n|\r)} }

gcc/testsuite/g++.dg/contracts/cpp26/contracts1.C

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,13 @@ PostCond::postcond2(T x) post (x >= 0) // { dg-error "a value parameter used in
9292

9393
template <class T>
9494
void
95-
postcond3(T x) post(x >= 0) // { dg-error "a value parameter used in a postcondition must be const" }
95+
postcond3(T x) post(x >= 0)
9696
{ }
9797

9898
void postcond7()
9999
{
100100
PostCond p;
101101
p.postcond2 (2);
102-
postcond3 (4);
102+
postcond3 (4); // { dg-error "a value parameter used in a postcondition must be const" "" {target *-*-* } 63 }
103+
103104
}

0 commit comments

Comments
 (0)