// { dg-do compile } // { dg-options "-std=c++2a -fcontracts" } template [[z]] [[nodiscard]] T fun(T n) [[ pre: n > 0 ]] [[ post r: r > 0 ]] // { dg-warning ".z. attribute.*ignored" } { return n; } int main(int, char**) { fun(-5); // { dg-warning "ignoring return value" } fun(-5.3); // { dg-warning "ignoring return value" } return 0; }