blob: a121208236eb21149cf0f0260b7bc09134e778ea (
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
|
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
namespace JitTest
{
internal class BaseClass { }
internal class TestClass : BaseClass
{
private static bool Test_LDARG(object obj, bool flag)
{
try
{
TestClass inst;
if (flag)
{
inst = (TestClass)obj;
return inst != null;
}
else
{
inst = (TestClass)obj;
return obj == null;
}
}
catch (Exception X)
{
return !flag && X is InvalidCastException;
}
}
private static int Main()
{
if (!Test_LDARG(new TestClass(), true))
{
Console.WriteLine("Failed => 101");
return 101;
}
if (!Test_LDARG(new DerivedClass(), true))
{
Console.WriteLine("Failed => 102");
return 102;
}
if (!Test_LDARG(new BaseClass(), false))
{
Console.WriteLine("Failed => 103");
return 103;
}
if (!Test_LDARG(new OtherClass(), false))
{
Console.WriteLine("Failed => 104");
return 104;
}
if (!Test_LDARG(null, false))
{
Console.WriteLine("Failed => 105");
return 105;
}
Console.WriteLine("Passed => 100");
return 100;
}
}
internal class DerivedClass : TestClass { }
internal class OtherClass { }
}
|