Skip to content

JIT: Struct value defined via retbuf is not saved in continuation even though it is live #116135

Closed
@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v3.2 on 2025-05-30 10:22:01
// Run on X64 Windows
// Seed: 1509857531133762537-async,runtimeasync,vectort,vector128,vector256,x86aes,x86avx,x86avx2,x86bmi1,x86bmi1x64,x86bmi2,x86bmi2x64,x86fma,x86lzcnt,x86lzcntx64,x86pclmulqdq,x86pclmulqdqv256,x86popcnt,x86popcntx64,x86sse,x86ssex64,x86sse2,x86sse2x64,x86sse3,x86sse41,x86sse41x64,x86sse42,x86sse42x64,x86ssse3,x86x86base
// Reduced from 28.7 KiB to 0.9 KiB in 00:00:34
// Release: Outputs -233
// Release with Runtime Async: Outputs 0
using System;
using System.Numerics;
using System.Threading.Tasks;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;

public struct S0
{
    public Vector128<long> F1;
    public short F2;
    public S0(short f2, int f3, uint f4) : this()
    {
        F2 = f2;
    }
}

public class Program
{
    public static IRuntime s_rt;
    public static void Main()
    {
        s_rt = new Runtime();
        M0().GetAwaiter().GetResult();
    }

    public static async Task M0()
    {
        S0 var1 = M1();
        await Task.Yield();
        s_rt.WriteLine(var1.F2);
    }

    public static S0 M1()
    {
        return new S0(-233, 1, 2545993471U);
    }
}

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

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

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions