Skip to content

Assertion failed '(emitThisGCrefRegs & regMask) == 0' during 'Emit code' (IL size 129) #65311

@jakobbotsch

Description

@jakobbotsch

Description

The following program hits a JIT assert on win-x86.

Reproduction Steps

// Generated by Fuzzlyn v1.5 on 2022-02-13 16:58:00
// Run on X86 Windows
// Seed: 17417076199071509021
// Reduced from 70.5 KiB to 0.7 KiB in 00:02:32
// Hits JIT assert in Release:
// Assertion failed '(emitThisGCrefRegs & regMask) == 0' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Emit code' (IL size 129)
// 
//     File: D:\a\_work\1\s\src\coreclr\jit\emitxarch.cpp Line: 12182
// 
public class C0
{
    public int F1;
    public short F2;
}

public class Program
{
    public static long s_1;
    public static C0 s_3;
    public static void Main()
    {
        bool vr0 = default(bool);
        s_3.F2 = s_3.F2++;
        if (!vr0)
        {
            if (vr0)
            {
                vr0 = s_3.F2 <= s_3.F1;
                short vr2 = (short)s_1;
                sbyte vr1 = (sbyte)vr2;
                try
                {
                    vr1 >>= s_3.F1;
                }
                finally
                {
                    vr0 = vr0;
                }

                System.Console.WriteLine(vr1);
            }
        }

        System.Console.WriteLine(vr0);
    }
}

Expected behavior

No assert hit.

Actual behavior

Assert hit.

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

Metadata

Metadata

Assignees

Labels

arch-x86area-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