blob: 43e75edbef805c7f5d806cbc802dbd3989e1a55f [file] [log] [blame]
// { dg-do run }
// { dg-options "-std=c++2a -fcontracts -fcontract-continuation-mode=on" }
void gfn3(int n) [[ pre: n > 0 ]];
struct Outer {
struct Inner {
void fn(int n) [[ pre: n > 0 && bob > 1 ]];
};
void fn(int m) [[ pre: m > 1 ]];
friend void gfn1(int q);
friend void gfn1(int p) [[ pre: p > 0 ]] { }
friend void gfn2(int q, Outer *);
friend void gfn2(int p, Outer *) [[ pre: p > 0 ]] { }
friend void gfn3(int n);
static int bob;
};
int Outer::bob{-1};
void Outer::Inner::fn(int x) { }
void Outer::fn(int y) { }
void gfn3(int n) { }
void gfn1(int q);
int main(int, char **) {
Outer::Inner in;
in.fn(-5);
Outer out;
out.fn(-6);
gfn1(-7);
gfn2(-8, &out);
gfn3(-9);
}