blob: 2ad71d507d1fb21495dbd6a115e556e57cfef509 [file] [log] [blame]
// PR c++/86767
// { dg-do compile { target c++14 } }
constexpr int
fn0 () noexcept
{
int r = 0;
for (int i = 0; i < 10; ++i)
{
continue;
r++;
for (int j = 0; j < 10; ++j )
{
}
}
return r;
}
static_assert (fn0 () == 0, "");
constexpr int
fn1 () noexcept
{
int r = 0;
for (int i = 0; i < 10; ++i)
for (int j = 0; j < 10; ++j)
{
continue;
r++;
}
return r;
}
static_assert (fn1 () == 0, "");
constexpr int
fn2 () noexcept
{
int r = 0;
for (int i = 0; i < 10; ++i)
{
continue;
r++;
}
return r;
}
static_assert (fn2 () == 0, "");
constexpr int
fn3 () noexcept
{
int r = 0;
for (int i = 0; i < 10; ++i)
{
continue;
r++;
while (1)
{
}
}
return r;
}
static_assert (fn3 () == 0, "");
constexpr int
fn4 () noexcept
{
for (int i = 0; i < 10; ++i)
{
switch (i)
{
case 5:
return i;
default:
continue;
}
while (1)
{
}
}
return 0;
}
static_assert (fn4 () == 5, "");
constexpr int
fn5 () noexcept
{
for (int i = 0; i < 10; ++i)
{
switch (i)
{
case 0:
case 1:
case 2:
case 3:
case 4:
continue;
default:
return i;
}
while (1)
{
}
}
return 0;
}
static_assert (fn5 () == 5, "");
constexpr int
fn6 () noexcept
{
int r = 0;
for (int i = 0; i < 10; ++i)
{
continue;
for (int j = 0; j < 10; ++j )
r++;
}
return r;
}
static_assert (fn6 () == 0, "");