/*
REQUIRED_ARGS: -o-
PERMUTE_ARGS:
TEST_OUTPUT:
---
fail_compilation/fail11562.d(16): Error: cannot goto in or out of finally block
fail_compilation/fail11562.d(37): Error: cannot goto in or out of finally block
fail_compilation/fail11562.d(49): Error: cannot goto in or out of finally block
fail_compilation/fail11562.d(64): Error: cannot goto in or out of finally block
---
*/

// Goto into finally block (forwards)
int w(bool b)
{
    if (b) goto label;
    try
    {
    }
    finally
    {
    label: {}
    }
    return 1;
}

// // Goto into finally block (backwards)
int x(bool b)
{
    try
    {
    }
    finally
    {
    label: {}
    }
    if (b) goto label;
    return 1;
}

// Goto out of finally block (forwards)
int y(bool b)
{
    try
    {
    }
    finally
    {
    if (b) goto label;
    }
    label: {}
    return 1;
}

// // Goto out of finally block (backwards)
int z(bool b)
{
    label: {}
    try
    {
    }
    finally
    {
    if (b) goto label;
    }
    return 1;
}
