Skip to content

Assertion failed 'i < BitSetTraits::GetSize(env)' in during 'Redundant branch opts' #71599

@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v1.5 on 2022-07-03 16:41:26
// Run on Arm64 MacOS
// Seed: 15254214336696406464
// Reduced from 47.2 KiB to 1.6 KiB in 00:00:23
// Hits JIT assert in Release:
// Assertion failed 'i < BitSetTraits::GetSize(env)' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Redundant branch opts' (IL size 260; hash 0xade6b36b; FullOpts)
// 
//     File: /Users/runner/work/1/s/src/coreclr/jit/bitsetasshortlong.h Line: 261
// 
public class C0
{
    public ushort F0;
    public ulong F1;
}

public class C1
{
    public C0 F0;
    public C0 F3;
    public C0 F6;
}

public struct S0
{
    public bool F1;
    public ushort F3;
    public byte F6;
}

public struct S1
{
    public int F0;
}

public class Program
{
    public static IRuntime s_rt;
    public static C1[][] s_1;
    public static S0[] s_3;
    public static S1 s_7;
    public static void Main()
    {
        ushort[] vr2 = default(ushort[]);
        S0 vr3 = default(S0);
        bool vr4 = vr3.F1;
        byte vr5 = vr3.F6--;
        if (vr4)
        {
            try
            {
                s_rt.WriteLine(1);
            }
            finally
            {
                C1 vr6 = s_1[0][0];
                var vr7 = new long[]{1};
                var vr8 = vr6.F3;
                long[] vr10 = vr7;
                C0 vr11 = vr8;
                int vr13 = s_7.F0;
                s_rt.WriteLine(vr6.F0.F0);
                s_rt.WriteLine(vr6.F0.F1);
                s_rt.WriteLine(vr6.F6.F0);
            }

            if (!vr4)
            {
                s_1[0][0].F3.F0 = vr3.F3;
            }
        }

        for (int vr9 = 0; vr9 < 2; vr9++)
        {
            if (vr4)
            {
                s_3[0].F3 = vr2[0];
            }

            s_rt.WriteLine(vr9);
        }
    }
}

public interface IRuntime
{
    void WriteLine<T>(T value);
}

public class Runtime : IRuntime
{
    public void WriteLine<T>(T value) => System.Console.WriteLine(value);
}

cc @EgorBo

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions