Skip to content

Assertion failed 'child->OperIs(GT_AND) || child->OperIsCmpCompare()' during 'Lowering nodeinfo' #76566

@kunalspathak

Description

@kunalspathak
// Found by Antigen

using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
public class TestClass
{
    public struct S1
    {
        public struct S1_D1_F1
        {
            public struct S1_D2_F1
            {
            }
        }
    }
    public struct S2
    {
    }
    public struct S3
    {
    }
    public struct S5
    {
        public struct S5_D1_F2
        {
        }
    }
    static int s_int_15 = 62;
    bool bool_33 = true;
    double double_37 = 2.03125;
    int int_39 = -5;
    string string_43 = "Y5JA1";
    S1.S1_D1_F1.S1_D2_F1 s1_s1_d1_f1_s1_d2_f1_47 = new S1.S1_D1_F1.S1_D2_F1();
    S2 s2_51 = new S2();
    S5.S5_D1_F2 s5_s5_d1_f2_55 = new S5.S5_D1_F2();
    [MethodImpl(MethodImplOptions.NoInlining)]
    public int LeafMethod6()
    {
        unchecked
        {
            return int_39;
        }
    }
    public S5.S5_D1_F2 Method1(out S1.S1_D1_F1.S1_D2_F1 p_s1_s1_d1_f1_s1_d2_f1_57, S2 p_s2_58, out double p_double_59, S3 p_s3_60)
    {
        unchecked
        {
            int int_67 = 62;
            string string_71 = "1X";
            ushort ushort_72 = 2;
            S5.S5_D1_F2 s5_s5_d1_f2_87 = new S5.S5_D1_F2();
            S5.S5_D1_F2 s5_s5_d1_f2_88 = s5_s5_d1_f2_87;
            p_double_59 = 15/4;
            switch (string_71 = 15+4+ string_43)
            {
                case "XCT":
                {
                    switch (15<<4)
                    {
                        case 5:
                        {
                            break;
                        }
                        case 62:
                        {
                            break;
                        }
                        case -5:
                        {
                            break;
                        }
                        default:
                        {
                            switch (15>>4^ (s_int_15 -= int_67 <<= LeafMethod6())& int_67 + int_67& s_int_15 / 15|4)
                            {
                                case 1:
                                {
                                    break;
                                }
                                case 2:
                                {
                                    break;
                                }
                                case -2147483647:
                                {
                                    break;
                                }
                                default:
                                {
                                    break;
                                }
                            }
                            break;
                        }
                    }
                    break;
                }
                case "KW9":
                {
                    break;
                }
                default:
                {
                    while (bool_33&& 15!=4)
                    {
                        try
                        {
                        }
                        finally
                        {
                            while ((ushort_72 <<= int_39 >>= LeafMethod6())<= 15-4)
                            {
                            }
                        }
                    }
                    break;
                }
            }
            return s5_s5_d1_f2_88;
        }
    }
    public void Method0()
    {
        unchecked
        {
            S3 s3_166 = new S3();
            s5_s5_d1_f2_55 = Method1(out s1_s1_d1_f1_s1_d2_f1_47, s2_51, out double_37, s3_166);
            return;
        }
    }
    public static void Main(string[] args)
    {
        new TestClass().Method0();
    }
}
/*
--------- Test ---------  

Environment:

set COMPlus_AltJitName=clrjit_universal_arm64_x64.dll
set COMPlus_AltJit=Method1

Assert failure(PID 27256 [0x00006a78], Thread: 59140 [0xe704]): Assertion failed 'child->OperIs(GT_AND) || child->OperIsCmpCompare()' in 'TestClass:Method1(byref,S2,byref,S3):S5_D1_F2:this' during 'Lowering nodeinfo' (IL size 198; hash 0x9d220244; Tier0-FullOpts)
    File: D:\git\runtime\src\coreclr\jit\lowerarmarch.cpp Line: 2247
    Image: D:\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\CoreRun.exe
*/

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