PR c++/84192
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / constexpr-84192.C
blobad9458d238f8c371e816c36689af793ba82b0fd7
1 // PR c++/84192
2 // { dg-do compile { target c++14 } }
3 // { dg-options "" }
5 bool
6 f1 ()
7
8   return ({ return true; }) && false;   // { dg-error "could not convert" }
11 void
12 f2 ()
13
14   for (;;)
15     constexpr bool b = ({ break; false; }) && false;    // { dg-error "statement is not a constant expression" }
18 constexpr bool
19 f3 (int n)
21   bool b = false;
22   for (int i = 0; i < n; i++)
23     b = ({ break; });   // { dg-error "void value not ignored as it ought to be" }
24   return b;
27 constexpr bool b = f3 (4);
29 bool
30 f4 ()
32   constexpr bool b = ({ return true; }) && false;       // { dg-error "could not convert" }
33   return false;
36 constexpr bool
37 f5 (int x)
39   constexpr bool b = ({ switch (x) case 0: true; }) && false;   // { dg-error "could not convert" }
40   return false;