Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/ilasm/tests/gen-array2.il')
-rw-r--r--mcs/ilasm/tests/gen-array2.il52
1 files changed, 52 insertions, 0 deletions
diff --git a/mcs/ilasm/tests/gen-array2.il b/mcs/ilasm/tests/gen-array2.il
new file mode 100644
index 00000000000..4528bb0f796
--- /dev/null
+++ b/mcs/ilasm/tests/gen-array2.il
@@ -0,0 +1,52 @@
+// Test that no duplicate TypeSpec entries are emitted
+//
+// Multiple instaces of generic type class [one]gen<T> from an *external* assembly, with the same
+// argument (int32). Only one typespec should be emitted and shared by all these.
+
+.assembly extern mscorlib
+{
+ .ver 2:0:0:0
+}
+.assembly extern one
+{
+}
+.assembly 'gen-array2'
+{
+ .custom instance void class [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = (
+ 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+
+ .ver 0:0:0:0
+}
+.module arr.exe
+
+ .class private auto ansi beforefieldinit test
+ extends [mscorlib]System.Object
+ {
+ .method public static hidebysig
+ default void Main () cil managed
+ {
+ .entrypoint
+ .maxstack 3
+ .locals init (
+ /* Multiple generic instances with same argument */
+ class [one]gen`1<int32>[] V_0,
+ class [one]gen`1<int32>[][] V_1,
+ class [one]gen`1<int32> V_2,
+ class [one]gen`1<int32>[] V_3,
+ class [one]gen`1<class [one]gen`1<int32>> V_4,
+ class [one]gen`1<class [one]gen`1<int32>>[] V_5,
+ class [one]gen`1<class [one]gen`1<int32>>[][] V_6,
+ class [one]gen`1<class [one]gen`1<int32>[]>[][] V_7,
+ class [one]gen`1<class [one]gen`1<int32>[][]>[][] V_8)
+ IL_0000: ldc.i4.s 0x36
+ IL_0002: newarr class [one]gen`1<int32>
+ IL_0007: stloc.0
+ IL_0008: ldloc.0
+ IL_0009: ldc.i4.0
+ IL_000a: newobj instance void class [one]gen`1<int32>::.ctor()
+ IL_000f: stelem.ref
+ IL_0010: ret
+ }
+
+ }