summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2016-11-23 19:09:09 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2016-11-23 19:09:09 +0900
commit4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (patch)
tree98110734c91668dfdbb126fcc0e15ddbd93738ca /tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il
parentfa45f57ed55137c75ac870356a1b8f76c84b229c (diff)
downloadcoreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.gz
coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.bz2
coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.zip
Imported Upstream version 1.1.0upstream/1.1.0
Diffstat (limited to 'tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il')
-rw-r--r--tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il
new file mode 100644
index 0000000000..181c7d89c5
--- /dev/null
+++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il
@@ -0,0 +1,71 @@
+// 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.
+
+.assembly extern legacy library mscorlib {}
+.assembly extern System.Console
+{
+ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
+ .ver 4:0:0:0
+}
+.assembly t5 {}
+//=================================================
+
+// Generated Method Number 30907
+// Check the type soundness of assigning into argument slots
+// The verifier should REJECT this method
+.class public C30907 {
+//-test_30907_starg_ByReftoI4_into_ByReftoI2
+.method public static void test_30907_starg_ByReftoI4_into_ByReftoI2(class C,int32, int32 &, int16 &) {
+// Local 0 - an initialized int32 (not used in all tests)
+// Local 1 - an initialized int64 (not used in all tests)
+// Local 2 - an initially uninitialized ['mscorlib']System.DateTime (not used in all tests)
+// Local 3 - an uninitialized Object handle (not used in all tests)
+// Local local_int8 - an initialized int8 (not used in all tests)
+.maxstack 20
+.locals(int32,int64,value class ['mscorlib']System.DateTime,class ['mscorlib']System.Object,int8 local_int8)
+ ldc.i4 0 //initialize local 0 (not used in all tests)
+ stloc 0
+ ldc.i8 0 //initialize local 1 (not used in all tests)
+ stloc 1
+ ldc.i4 0 //initialize local 4 (not used in all tests)
+ stloc local_int8
+ ldstr "running test_30907_starg_ByReftoI4_into_ByReftoI2\n"
+call void [System.Console]System.Console::WriteLine(class System.String)
+
+// Generate a byref to an I4 on the stack by taking the address of an initialized local.
+
+ ldloca 0
+
+ // Now try to overwrite argument slot 3 with this value
+ // The verifier should reject this.
+ starg 3
+ ret
+} }
+
+.class auto ansi C extends ['mscorlib']System.Object {
+ .field public static value class ['mscorlib']System.DateTime static_unboxed_dt
+ .field public static class ['mscorlib']System.DateTime static_boxed_dt
+ .field public static int32 i4
+ .field public static int16 i2
+ .field public static class ['mscorlib']System.Object obj
+ .field public static class ['mscorlib']System.IComparable obj2
+ .method public specialname rtspecialname instance void .ctor() { ldarg 0
+ call instance void ['mscorlib']System.Object::.ctor()
+ ret
+ }
+
+.method public static int32 main()
+{
+ .entrypoint
+ .maxstack 10
+ ldnull
+ ldc.i4 10
+ ldsflda int32 C::i4
+ ldsflda int16 C::i2
+ call void C30907::test_30907_starg_ByReftoI4_into_ByReftoI2(class C,int32, int32 &, int16 &)
+ ldc.i4 100
+ ret
+}
+
+} \ No newline at end of file