blob: 44e8e264b54a829270ac757eb192a11a798e5040 [file] [log] [blame]
// ensure no errors are thrown when we have to insert a decl for the internal
// unchecked function after leaving a (possibly nested) namespace
// { dg-do compile }
// { dg-options "-std=c++2a -fcontracts" }
namespace ns0
{
int f(int a) [[ pre: a > 0 ]];
}
int ns0::f(int a) [[ pre: a > 0 ]]
{
return -a;
}
namespace ns0
{
namespace ns1
{
int f(int a) [[ pre: a > 0 ]];
}
}
int ns0::ns1::f(int a) [[ pre: a > 0 ]]
{
return -a;
}
namespace ns0
{
namespace ns1
{
int f2(int a) [[ pre: a > 0 ]];
namespace ns2
{
int f(int a) [[ pre: a > 0 ]];
}
}
int ns1::f2(int a) [[ pre: a > 0 ]]
{
return -a;
}
}
int ns0::ns1::ns2::f(int a) [[ pre: a > 0 ]]
{
return -a;
}
namespace ns0
{
struct S
{
int f(int a) [[ pre: a > 0 ]];
};
namespace ns1
{
struct S2
{
int f(int a) [[ pre: a > 0 ]];
};
}
}
int ns0::S::f(int a) [[ pre: a > 0 ]]
{
return -a;
}
int ns0::ns1::S2::f(int a) [[ pre: a > 0 ]]
{
return -a;
}