1 // ensure that non-defined entities in assume contracts do not error
3 // { dg-options "-std=c++2a -fcontracts" }
9 [[ pre assume: id2(n) > 0 ]]
17 [[ pre assume: id2(n) > 0 ]]
24 constexpr T id(T n); // { dg-warning "used but never defined" }
28 [[ pre assume: id(n) > 0 ]]
29 [[ pre: id(n) > 0 ]] // { dg-error "used before its definition" }
41 constexpr T cfun2(T n)
42 [[ pre assume: id3(n) > 0 ]] // { dg-error "contract predicate" }
48 constexpr T cfun3(T n)
49 [[ pre: id3(n) > 0 ]] // { dg-error "contract predicate" }
55 constexpr int n = cfun(-5);
56 constexpr int n2 = cfun2(-5);
57 constexpr int n3 = cfun3(-5);