summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66533/b66533.cs
blob: b5bd46cf00cb4dceb71e874636206de143df273e (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

namespace Test
{
    using System;
    using System.Collections;

    public enum TestEnum
    {
        red = 1,
        green = 2,
        blue = 4,
    }

    public struct AA
    {
        public Array m_xField1;
        public object m_xField2;
        public long[] m_alField3;
        public sbyte[] m_asbField4;
        public int m_iField5;
        public static TestEnum[] m_axStatic1;

        public void Break() { throw new Exception(); }
        public ulong Method1()
        {
            String[] local1 = new String[] { };
            byte[] local2 = new byte[] { };
            bool local3 = true;
            TypedReference local4 = __makeref(App.m_xFwd1);
            String[] local5 = new String[] { "120", "70", "105" };
            if (local3)
                while (local3)
                {
                    TestEnum[] local6 = new TestEnum[] { TestEnum.red };
                    do
                    {
                        sbyte[] local7 = (new sbyte[117]);
                        sbyte local8 = App.m_suFwd2;
                        double[] local9 = new double[] { 72.0 };
                        char[] local10 = (new char[118]);
                        int[] local11 = new int[] { 98, 126, 35 };
                        for (new TestEnum(); local3; new sbyte())
                        {
                            int[] local12 = new int[] { };
                            String[] local13 = (new String[9]);
                            ulong[] local14 = (new ulong[56]);
                            App.m_asuFwd3 = (new sbyte[116]);
                            Break();
                        }
                        try
                        {
                            double local12 = 48.0;
                            TestEnum[] local13 = AA.m_axStatic1;
                            char[] local14 = (new char[83]);
                            sbyte local15 = App.m_suFwd2;
                            Array[] local16 = (new Array[73]);
                            throw new IndexOutOfRangeException();
                        }
                        catch (IndexOutOfRangeException)
                        {
                            byte[] local12 = (new byte[19]);
                            sbyte[] local13 = App.m_asbFwd4;
                            TestEnum local14 = TestEnum.red;
                            return App.m_ulFwd5;
                        }
                    }
                    while (local3);
                }
            else
                goto label1;
            while (local3)
            {
                ulong local6 = App.m_ulFwd5;
                object local7 = null;
                double[] local8 = (new double[71]);
                byte local9 = App.m_bFwd6;
                AA[] local10 = (new AA[47]);
                do
                {
                    object local11 = null;
                    float local12 = 72.0f;
                    int[] local13 = new int[] { 76 };
                    int local14 = 23;
                    for (local14 = local14; local3; new double())
                    {
                        int[] local15 = new int[] { 91, 54 };
                        byte[] local16 = (new byte[14]);
                        double local17 = 94.0;
                        TestEnum local18 = 0;
                        local10 = local10;
                    }
                }
                while (local3);
            }
            if (local3)
                try
                {
                    float[] local6 = new float[] { 113.0f, 23.0f };
                    sbyte local7 = App.m_suFwd2;
                    TestEnum[] local8 = AA.m_axStatic1;
                    uint local9 = 1u;
                    throw new InvalidOperationException();
                }
                finally
                {
                    double local6 = 61.0;
                    object local7 = null;
                    uint[] local8 = new uint[] { 38u };
                    char[] local9 = (new char[17]);
                    for (App.m_iFwd7 = App.m_iFwd7; local3; local7 = local7)
                    {
                        char[] local10 = new char[] { };
                        sbyte[] local11 = (new sbyte[39]);
                        object[] local12 = (new object[50]);
                        Array[] local13 = App.m_axFwd8;
                        local11 = local11;
                    }
                }
            label1:
            return App.m_ulFwd5;
        }
    }

    internal class App
    {
        private static int Main()
        {
            try
            {
                new AA().Method1();
            }
            catch (Exception)
            {
                Console.WriteLine("Passed.");
                return 100;
            }
            return 101;
        }
        public static AA m_xFwd1;
        public static sbyte m_suFwd2;
        public static sbyte[] m_asuFwd3;
        public static sbyte[] m_asbFwd4;
        public static ulong m_ulFwd5;
        public static byte m_bFwd6;
        public static int m_iFwd7;
        public static Array[] m_axFwd8;
        public static char m_cFwd9;
        public static bool m_bFwd10;
        public static byte m_siFwd11;
        public static long m_lFwd12;
        public static ulong[] m_aulFwd13;
        public static byte[] m_asiFwd14;
        public static object m_xFwd15;
        public static String m_xFwd16;
        public static double m_dFwd17;
        public static Array m_xFwd18;
        public static float[] m_afFwd19;
        public static long[] m_alFwd20;
    }
}