blob: db9a0c37aa0f01c83414567ab0b1f65c19d98793 [file] [log] [blame]
// basic test to ensure contracts work pre-c++2a
// { dg-do run { target c++11 } }
// { dg-additional-options "-fcontracts -fcontract-continuation-mode=on" }
int f(int n)
[[ pre: n > 0 ]]
[[ post r: r < 0 ]]
{
[[ assert: n > 0 ]];
return -n;
}
int main()
{
f(-5);
return 0;
}
// { dg-output "default std::handle_contract_violation called: .*.C 6 .*(\n|\r\n|\r)*" }
// { dg-output "default std::handle_contract_violation called: .*.C 9 .*(\n|\r\n|\r)*" }
// { dg-output "default std::handle_contract_violation called: .*.C 7 .*(\n|\r\n|\r)*" }