cfad47cfa3/t3compiler/tads3/test/data/gotofin.t

4b825dc642cb6eb9a060e54bf8d69288fbee4904cfad47cfa334b206c65f22086bcc5d63e6f70944
1
#include "tads.h"
2
3
function _main(args)
4
{
5
    local i;
6
    
7
    i = 1;
8
9
    /* this one should fail - transfers into a 'finally' block */
10
    if (i > 50)
11
        goto label_in_finally;
12
    
13
    for (local i = 1 ; i <= 100 ; ++i)
14
    {
15
        /* this one should also fail */
16
        if (i > 50)
17
            goto label_in_finally;
18
19
        try
20
        {
21
            "This is a test.";
22
23
            /* 
24
             *   this one should fail, too - we can't even transfer into
25
             *   our own 'finally' block within a 'try' or 'catch' 
26
             */
27
            if (i > 30)
28
                goto label_in_finally;
29
        }
30
        finally
31
        {
32
            "In the 'finally'";
33
34
        label_in_finally:
35
            "After the label in the finally!";
36
37
            /* this one should work - it's within the same block */
38
            if (i > 75)
39
                goto label_in_finally;
40
41
            try
42
            {
43
                "Sub-try";
44
            }
45
            finally
46
            {
47
                /* this one should also work */
48
                goto label_in_finally;
49
            }
50
        }
51
    }
52
}