// Tests to ensure that contracts have a properly cv qualified this // { dg-do compile } // { dg-options "-std=c++2a -fcontracts" } struct S { int g() const { return x_; } int f() { return x_; } void mem_c() const [[ pre: f() ]] // { dg-error "discards qualifiers" } { } void mem_nc() [[ pre: f() ]] { } void memc_c() const [[ pre: g() ]] { } void memc_nc() [[ pre: g() ]] { } private: int x_{-10}; }; int main(int, char**) { S s; return 0; };