-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Description
// Generated by Fuzzlyn v1.6 on 2023-11-12 01:56:05
// Run on Arm Linux
// Seed: 15322237346947874736
// Reduced from 37.4 KiB to 7.0 KiB in 00:05:48
// Hits JIT assert in Release:
// Assertion failed '!(block->bbFlags & BBF_FINALLY_TARGET)' in 'Program:M0()' during 'Global local var liveness' (IL size 1536; hash 0xaf50ff37; FullOpts)
//
// File: /__w/1/s/src/coreclr/jit/fgbasic.cpp Line: 5209
//
using System.Runtime.CompilerServices;
public interface I0
{
}
public class C0 : I0
{
public int F0;
public int F1;
public C0(int f0, int f1)
{
F0 = f0;
F1 = f1;
}
}
public class C1
{
public sbyte F0;
public int F1;
public C0 F2;
public C1(sbyte f0, int f1, C0 f2)
{
F1 = f1;
F2 = f2;
}
}
public struct S0 : I0
{
public sbyte F0;
public C0 F1;
public uint F2;
public byte F3;
public int F4;
public S0(sbyte f0, C0 f1, uint f2, byte f3, int f4, byte f5): this()
{
}
}
public class Program
{
public static IRuntime s_rt;
public static byte[] s_1;
public static byte s_2;
public static ushort s_3;
public static bool s_5;
public static ulong s_7;
public static bool s_8;
public static I0[] s_9;
public static C0[] s_14;
public static C1 s_15;
public static uint s_16;
public static S0 s_17;
public static S0 s_18;
public static S0 s_21;
public static C1 s_23;
public static long s_26;
public static byte[, ] s_31;
public static void Main()
{
CollectibleALC alc = new CollectibleALC();
System.Reflection.Assembly asm = alc.LoadFromAssemblyPath(System.Reflection.Assembly.GetExecutingAssembly().Location);
System.Reflection.MethodInfo mi = asm.GetType(typeof(Program).FullName).GetMethod(nameof(MainInner));
System.Type runtimeTy = asm.GetType(typeof(Runtime).FullName);
mi.Invoke(null, new object[]{System.Activator.CreateInstance(runtimeTy)});
}
public static void MainInner(IRuntime rt)
{
M0();
}
public static void M0()
{
byte var0 = default(byte);
ushort[][] var1 = default(ushort[][]);
byte var9 = default(byte);
short[][] var10 = default(short[][]);
bool var12 = default(bool);
C1 var16 = default(C1);
ulong var24 = default(ulong);
short var34 = default(short);
var12 = s_8;
var9 = s_1[0];
var vr6 = new C1(1, 1, new C0(-1966899163, 1));
M2();
var10[0][0] = var10[0][0]--;
if (var12)
{
int var13 = s_14[0].F1;
s_15 = new C1(0, 0, new C0(-1, 2147483646));
}
s_9 = new I0[]{new S0(-127, new C0(1744994298, -813863043), 3332730256U, 1, 2147483646, 50), new C0(1, 1), new C0(271388024, 1), new S0(0, new C0(691366226, 5322955), 1420714811U, 0, 2147483647, 0), new S0(0, new C0(-495037097, 1644462694), 0, 91, 1713738859, 1)};
ushort[] var15 = var1[0];
var16 = new C1(-40, 0, new C0(-957554893, 1040057853));
for (int var17 = 0; var17 < 1; var17++)
{
var16.F0 = s_15.F0--;
s_rt.WriteLine("c_25", var17);
return;
}
if (s_8)
{
short var19 = 30153;
s_rt.WriteLine("c_27", var19);
}
else
{
var15[0] = var1[0][0];
s_3 = var15[0];
var vr0 = s_14[0];
M1();
S0 var21 = new S0(1, new C0(1, 59206748), 698097259U, 0, -635727362, 1);
s_rt.WriteLine("c_28", var21.F0);
s_rt.WriteLine("c_29", var21.F1.F0);
s_rt.WriteLine("c_31", var21.F2);
}
try
{
var12 ^= !var12;
}
finally
{
short var22 = var10[0][0]--;
}
if (var12)
{
s_15.F1 = var10[0][0] % (var10[0][0] | 1);
}
int var23 = s_15.F1--;
s_rt.WriteLine("c_36", var15[0]);
s_rt.WriteLine("c_37", var16.F0);
s_rt.WriteLine("c_39", var16.F2.F0);
s_rt.WriteLine("c_40", var16.F2.F1);
s_rt.WriteLine("c_41", var23);
s_rt.WriteLine("c_42", var24);
var vr7 = s_16--;
M3(vr7);
s_14[0].F1 = s_17.F4;
var1[0] = new ushort[]{0, 0, 1, 1, 0, 0, 1};
try
{
var10[0][0] = var10[0][0];
}
finally
{
var vr5 = s_17.F1;
M1();
}
s_17.F3 = var0;
var10[0] = new short[]{1, 1, 0, 1};
uint[] var28 = new uint[]{0, 1, 1, 0, 0, 0, 1, 0};
s_rt.WriteLine("c_44", var28[0]);
s_18 = s_17;
s_17.F1.F0 = ~s_17.F4;
var vr8 = new C1(126, 0, new C0(1907285129, -1));
C0 var30 = M2();
var30.F0 = s_17.F1.F1;
try
{
var34 = var10[0][0];
for (int var35 = 0; var35 < 0; var35++)
{
}
s_rt.WriteLine("c_55", var34);
}
finally
{
var vr3 = s_17.F2;
M3(vr3);
var vr4 = new C0(-2147483647, 0);
M1();
}
for (int var36 = 0; var36 < 0; var36++)
{
try
{
s_21.F1 = var30;
}
finally
{
s_23 = s_23;
var10 = var10;
}
ushort var38 = var1[0][0];
s_rt.WriteLine("c_57", var36);
}
if (var12)
{
try
{
s_17.F3 = var9;
}
finally
{
s_23.F2.F0 = s_23.F2.F0--;
s_17.F2 = 0;
}
}
if (var12)
{
var12 = (var10[0][0] & 7421442600330393152L) != (ushort)s_7++;
}
s_17.F0 = s_17.F0;
bool[] var41 = new bool[]{false, false, false, true, true, false};
s_2 = s_17.F3;
if (s_5)
{
var vr2 = new C1(-128, -2147483648, new C0(-1, 10));
var vr1 = M2();
M1();
}
else
{
try
{
if (var12)
{
s_26 &= 0;
}
}
finally
{
M4();
var1 = new ushort[][]{new ushort[]{12029}, new ushort[]{0, 21775, 65534}, new ushort[]{1, 27311}, new ushort[]{23045, 0, 0, 1, 0}};
C0 var48 = s_21.F1;
s_rt.WriteLine("c_70", var48.F1);
}
}
var vr10 = s_17.F2;
var vr9 = M3(vr10);
M3(vr9);
byte[, ] var52 = s_31;
}
public static byte M3(uint arg0)
{
return default(byte);
}
public static void M4()
{
}
public static C0 M1()
{
return default(C0);
}
public static C0 M2()
{
return default(C0);
}
}
public interface IRuntime
{
void WriteLine<T>(string site, T value);
}
public class Runtime : IRuntime
{
public void WriteLine<T>(string site, T value) => System.Console.WriteLine(value);
}
public class CollectibleALC : System.Runtime.Loader.AssemblyLoadContext
{
public CollectibleALC(): base(true)
{
}
}
Repros with altjit. Bisected to #93428, cc @BruceForstall
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI