ipa-cp: Perform operations in the appropriate types (PR 118097)
[gcc.git] / gcc / testsuite / g++.dg / contracts / contracts-pre6.C
blob44e8e264b54a829270ac757eb192a11a798e5040
1 // ensure no errors are thrown when we have to insert a decl for the internal
2 // unchecked function after leaving a (possibly nested) namespace
3 // { dg-do compile }
4 // { dg-options "-std=c++2a -fcontracts" }
6 namespace ns0
8   int f(int a) [[ pre: a > 0 ]];
11 int ns0::f(int a) [[ pre: a > 0 ]]
13   return -a;
16 namespace ns0
18   namespace ns1
19   {
20     int f(int a) [[ pre: a > 0 ]];
21   }
24 int ns0::ns1::f(int a) [[ pre: a > 0 ]]
26   return -a;
29 namespace ns0
31   namespace ns1
32   {
33     int f2(int a) [[ pre: a > 0 ]];
34     namespace ns2
35     {
36       int f(int a) [[ pre: a > 0 ]];
37     }
38   }
39   int ns1::f2(int a) [[ pre: a > 0 ]]
40   {
41     return -a;
42   }
45 int ns0::ns1::ns2::f(int a) [[ pre: a > 0 ]]
47   return -a;
50 namespace ns0
52   struct S
53   {
54     int f(int a) [[ pre: a > 0 ]];
55   };
56   namespace ns1
57   {
58     struct S2
59     {
60       int f(int a) [[ pre: a > 0 ]];
61     };
62   }
65 int ns0::S::f(int a) [[ pre: a > 0 ]]
67   return -a;
70 int ns0::ns1::S2::f(int a) [[ pre: a > 0 ]]
72   return -a;