diff --git a/src/tests/Regressions/coreclr/Runtimelab_578/arr.il b/src/tests/Regressions/coreclr/Runtimelab_578/arr.il new file mode 100644 index 00000000000000..803aa6711f8f78 --- /dev/null +++ b/src/tests/Regressions/coreclr/Runtimelab_578/arr.il @@ -0,0 +1,69 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +.assembly extern mscorlib { } +.assembly 'arr' { } + +.method static int32[] alloc() cil managed +{ + ldc.i4.8 + ldc.i4.8 + newobj instance void int32[]::.ctor(int32,int32) + ret +} + +.method static int32 negative() cil managed +{ + .try + { + call int32[] alloc() + leave bad + } + catch [mscorlib]System.MissingMethodException + { + pop + leave good + } + + good: + ldc.i4.1 + ret + + bad: + ldc.i4.0 + ret +} + +.method public static int32 main() cil managed +{ + .locals init (int32[][] a) + .entrypoint + + ldc.i4.7 + newobj instance void int32[]::.ctor(int32) + ldlen + + ldc.i4.2 + ldc.i4.3 + newobj instance void int32[][]::.ctor(int32,int32) + dup + stloc a + ldlen + ldc.i4 40 + mul // 2 * 40 = 80 + add // 7 + 80 = 87 + + ldloc a + ldc.i4.0 + ldelem int32[] + ldlen + ldc.i4.4 + mul // 3 * 4 = 12 + + add // 87 + 12 = 99 + + call int32 negative() + add // 99 + 1 = 100 + + ret +} \ No newline at end of file diff --git a/src/tests/Regressions/coreclr/Runtimelab_578/arr.ilproj b/src/tests/Regressions/coreclr/Runtimelab_578/arr.ilproj new file mode 100644 index 00000000000000..41dbc4c32b573d --- /dev/null +++ b/src/tests/Regressions/coreclr/Runtimelab_578/arr.ilproj @@ -0,0 +1,10 @@ + + + Exe + BuildAndRun + 1 + + + + + diff --git a/src/tests/issues.targets b/src/tests/issues.targets index aa5a4c9ef356b2..fd32bc59b4d1c7 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -976,6 +976,9 @@ https://github.com/dotnet/runtime/issues/46174 + + https://github.com/dotnet/runtime/issues/47458 + https://github.com/dotnet/runtime/issues/43676