1 // PR c++/88983 2 // { dg-do compile { target c++14 } } 3 4 constexpr int fn1(int ay)5fn1 (int ay) 6 { 7 switch (ay) 8 { 9 if (1) 10 { 11 case 1: 12 return 1; 13 } 14 else 15 { 16 default:; 17 } 18 } 19 20 return 0; 21 } 22 23 constexpr int fn2(int ay)24fn2 (int ay) 25 { 26 switch (ay) 27 { 28 if (1) 29 { 30 case 1: 31 break; 32 } 33 else 34 { 35 default:; 36 } 37 } 38 39 return 0; 40 } 41 42 constexpr int fn3(int ay)43fn3 (int ay) 44 { 45 int i = 0; 46 while (i++ < 100) 47 { 48 if (i == 1) 49 return 1; 50 switch (ay) 51 { 52 if (1) 53 { 54 case 1: 55 continue; 56 } 57 else 58 { 59 default:; 60 return -1; 61 } 62 } 63 return -1; 64 } 65 66 return -1; 67 } 68 69 static_assert (fn1 (1) == 1, ""); 70 static_assert (fn2 (1) == 0, ""); 71 static_assert (fn3 (1) == 1, ""); 72