// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using Xunit;
// Generated by Fuzzlyn v1.5 on 2022-02-06 16:34:36
// Run on X86 Windows
// Seed: 15345211054104247945
// Reduced from 56.7 KiB to 1.1 KiB in 00:00:55
// Debug: Outputs 0
// Release: Outputs -1
public struct S0
{
    public ulong F1;
    public int F2;
    public byte F3;
    public short F5;
    public long F6;
    public static int s_result;
    public void M4(int arg0, sbyte[] arg1)
    {
        ForwardSubCallArgInterference3.s_rt.WriteLine(arg0);
        s_result = arg0 + 100;
    }

    public sbyte[] M6(ref int arg0, bool arg1, ref S0 arg2, ref byte arg3)
    {
        var vr0 = ForwardSubCallArgInterference3.s_5;
        ForwardSubCallArgInterference3.M7(arg2, vr0, ref ForwardSubCallArgInterference3.s_6, ref ForwardSubCallArgInterference3.s_10, arg0);
        var vr1 = arg2.F6;
        ForwardSubCallArgInterference3.M8(arg2, vr1);
        arg0 = this.F2--;
        return new sbyte[]{1};
    }
}

public class ForwardSubCallArgInterference3
{
    public static IRT s_rt;
    public static bool s_2;
    public static S0 s_4;
    public static uint[] s_5;
    public static byte s_6;
    public static S0[] s_10;
    public static S0[, ] s_20 = new S0[, ]{{new S0()}};
    [Fact]
    public static int TestEntryPoint()
    {
        s_rt = new C();
        S0 vr2 = default(S0);
        new S0().M4(vr2.F2, vr2.M6(ref s_4.F2, s_2, ref s_20[0, 0], ref s_4.F3));
        return S0.s_result;
    }

    internal static void M8(S0 arg0, long arg1)
    {
    }

    internal static void M7(S0 argThis, uint[] arg0, ref byte arg1, ref S0[] arg2, int arg3)
    {
    }
}

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

public class C : IRT
{
    public void WriteLine<T>(T value)
    {
        System.Console.WriteLine(value);
    }
}
