blob: 9f91ff499d011ed63e3086d89d9fbc3abc7b3b15 [file] [log] [blame]
// { dg-do compile }
// { dg-options "-std=c++2a -fcontracts" }
void gfn3(int n) [[ pre: n > 0 ]];
struct Outer {
struct Inner {
void fn(int n) [[ pre: n > 0 && bob > 1 ]];
void fn2(int n) [[ pre: n > 0 && bob > 1 ]];
};
void fn(int m) [[ pre: m > 1 ]];
friend void Inner::fn(int n) [[ pre: n > 0 && bob > 1 ]]; // { dg-error "not declared" }
friend void gfn(int p) [[ pre: p > 0 ]];
friend void gfn(int q) [[ pre: q > 1 ]]; // { dg-error "'q' was not declared" }
// This should be okay.
friend void gfn2(int q);
friend void gfn2(int p) [[ pre: p > 0 ]] { }
static int bob;
};
int Outer::bob{-1};