// { dg-do compile } // { dg-options "-std=c++2a -fcontracts" } int f1(int n) [[pre: n >= 0]] [[post r: r >= 0]] [[post r: !(r < 0)]] { return n; } int f2(int n) [[post: true]] { return 0; } int f3(int n) [[post r: r >= n]] { return n + 1; } int f4(int n) [[post: x > 0]] // { dg-error "not declared" } { return 0; } void f5() [[post: true]] { } void f6() [[post r: true]] // { dg-error "function does not return a value" } { } int f7(int n) [[post: n > 0]] { return x; // { dg-error "not declared" } } void f8(int n) [[post: n > 0]] { return; } void f9(int n) [[post: n > 0]] { return n; // { dg-error "return-statement with a value" } } int f10(int n) [[post: n > 0]] { return; // { dg-error "return-statement with no value" } } void f11() [[post: true]] { constexpr int n = 0; return n; // { dg-error "return-statement with a value" } } int f12() [[post: true]] { return; // { dg-error "return-statement with no value" } }