blob: 0863480dc2eabae4c634cc8abcb3c79b774b5bb0 [file] [log] [blame]
// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
// { dg-do compile { target c++23 } }
// Make sure we don't reject this in C++26 because of
// .DEFERRED_INIT calls.
constexpr int
foo (int x)
{
if (x == 6)
goto l1;
if (x == 7)
goto l2;
int i;
switch (x)
{
int j;
case 1:
i = 6;
return i;
case 2:
i = 4;
l1:
i = 5;
return i;
case 3:
l2:
i = 7;
return i;
default:
return 42;
}
}
static_assert (foo (1) == 6);
static_assert (foo (2) == 5);
static_assert (foo (3) == 7);
static_assert (foo (4) == 42);