1 // related to PR c++/55189
2 // { dg-options "-Wreturn-type" }
3 
f1()4 int f1()
5 {
6   while (true) { }
7 }
f2()8 int f2()
9 {
10   while (true) { break; }
11 } // { dg-warning "no return statement" }
12 
f3()13 int f3()
14 {
15   for (;;) {}
16 }
f4()17 int f4()
18 {
19   for (;;) {break;}
20 } // { dg-warning "no return statement" }
21 
f5()22 int f5()
23 {
24   do {} while(true);
25 }
f6()26 int f6()
27 {
28   do {break;} while(true);
29 } // { dg-warning "no return statement" }
30 
f7()31 int f7()
32 {
33   for(;;)
34     while (true) {break;}
35 }
36 
f8()37 int f8()
38 {
39   for(;;)
40     {
41       while (true) {}
42       break;
43     }
44 }
45 
46 template <class T>
f9()47 T f9()
48 {
49   for(;;) { }
50 }
51 
52 template int f9();
53 
54 template <class T>
f10()55 T f10()
56 {
57   for(;;) { break; }
58 } // { dg-warning "no return statement" }
59 
60 template int f10();
61