i386: Utilize VCOMSBF16 for BF16 Comparisons with AVX10.2
[official-gcc.git] / gcc / testsuite / g++.dg / warn / pr81275-1.C
blob339b58c4d29335acbfbcc9cff2435b533ada392f
1 // PR sanitizer/81875
2 // { dg-do compile }
3 // { dg-options "-Wreturn-type" }
5 struct C { C (); ~C (); };
7 int
8 f1 (int a, int b)
10   C f;
11   switch (a)
12     {
13     case 0:
14       switch (b)
15         {
16         case 13:
17           return 7;
18         case 24:
19           return 19;
20         default:
21           return 0;
22         }
23       break;
24     default:
25       return 0;
26     case 9:
27       return 17;
28     }
29 }       // { dg-bogus "control reaches end of non-void function" }
31 int
32 f2 (int a, int b, int c, int d)
34   C f;
35   switch (a)
36     {
37     case 0:
38       switch (b)
39         {
40         case 13:
41           while (c >= 10)
42             {
43               if (c == d)
44                 break;
45               c--;
46             }
47           return 7;
48         case 29:
49           switch (d)
50             {
51             case 35:
52               break;
53             default:
54               return 9;
55             }
56           return 8;
57         case 24:
58           do
59             {
60               if (c == d)
61                 break;
62               c--;
63             }
64           while (c >= 10);
65           return 19;
66         default:
67           for (int e = 0; e < c; ++e)
68             if (e == d)
69               break;
70           return 0;
71         }
72       break;
73     default:
74       return 0;
75     case 9:
76       return 17;
77     }
78 }       // { dg-bogus "control reaches end of non-void function" }
80 template <int N>
81 int
82 f3 (int a, int b)
84   C f;
85   switch (a)
86     {
87     case 0:
88       switch (b)
89         {
90         case 13:
91           return 7;
92         case 24:
93           return 19;
94         default:
95           return 0;
96         }
97       break;
98     default:
99       return 0;
100     case 9:
101       return 17;
102     }
103 }       // { dg-bogus "control reaches end of non-void function" }
105 template <int N>
107 f4 (int a, int b, int c, int d)
109   C f;
110   switch (a)
111     {
112     case 0:
113       switch (b)
114         {
115         case 13:
116           while (c >= 10)
117             {
118               if (c == d)
119                 break;
120               c--;
121             }
122           return 7;
123         case 29:
124           switch (d)
125             {
126             case 35:
127               break;
128             default:
129               return 9;
130             }
131           return 8;
132         case 24:
133           do
134             {
135               if (c == d)
136                 break;
137               c--;
138             }
139           while (c >= 10);
140           return 19;
141         default:
142           for (int e = 0; e < c; ++e)
143             if (e == d)
144               break;
145           return 0;
146         }
147       break;
148     default:
149       return 0;
150     case 9:
151       return 17;
152     }
153 }       // { dg-bogus "control reaches end of non-void function" }
156 f5 (int a, int b)
158   return f3 <0> (a, b);
162 f6 (int a, int b, int c, int d)
164   return f4 <2> (a, b, c, d);