mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
66 lines
1,002 B
D
66 lines
1,002 B
D
/*
|
|
REQUIRED_ARGS: -o-
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fail11562.d(15): Error: cannot `goto` in or out of `finally` block
|
|
fail_compilation/fail11562.d(36): Error: cannot `goto` in or out of `finally` block
|
|
fail_compilation/fail11562.d(48): Error: cannot `goto` in or out of `finally` block
|
|
fail_compilation/fail11562.d(63): 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;
|
|
}
|