summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/runnable/s2ir.d
blob: 4c969b4b16f6c2659032753ee5a3de5795e911a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import std.stdio;

/***********************************/

void test1()
{
    int i;
    __gshared int j;

    version (D_InlineAsm_X86)
    {
        asm
        {
            naked       ;
            mov EAX, i  ;
        }
      version(D_PIC)
      {}
      else
      {
        asm
        {
            mov EAX, j  ;
        }
      }
    }
}

/***********************************/

int main()
{
    for (int i = 0; ; i++)
    {
        if (i == 10)
            break;
    }

    string[] a = new string[3];
    a[0] = "hello";
    a[1] = "world";
    a[2] = "foo";

    foreach (string s; a)
        writefln(s);

    switch (1)
    {
        default:
            break;
    }

    switch ("foo"w)
    {
        case "foo":
            break;
        default: assert(0);
    }

    switch (1)
    {
        case 1:
            try
            {
                goto default;
            }
            catch (Throwable o)
            {
            }
            break;

        default:
            break;
    }

    switch (1)
    {
        case 1:
            try
            {
                goto case 2;
            }
            catch (Throwable o)
            {
            }
            break;

        case 2:
            break;

        default: assert(0);
    }

    writefln("Success\n");
    return 0;
}
// RUNNABLE_PHOBOS_TEST