-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Closed
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIruntime-async
Milestone
Description
It may be similar to #117266, but I think it is a separate issue.
The repro (need to run with RT async enabled):
interface I2
{
Task<string> M0<T>();
Task<string> M1<T>(object a0, object a1, object a2, object a3, object a4, object a5, object a6, object a7, object a8);
}
class Class2 : I2
{
public async Task<string> M0<T>()
{
await Task.Yield();
return typeof(T).ToString();
}
public async Task<string> M1<T>(object a0, object a1, object a2, object a3, object a4, object a5, object a6, object a7, object a8)
{
await Task.Yield();
return typeof(T).ToString();
}
}
static I2 o2;
static async Task<string> CallClass2M0()
{
o2 = new Class2();
return await o2.M0<string>();
}
static async Task<string> CallClass2M1()
{
o2 = new Class2();
return await o2.M1<string>(default, default, default, default, default, default, default, default, default);
}
[Fact]
public static void NoArgGVM()
{
Assert.Equal("System.String", CallClass2M0().Result);
}
[Fact]
public static void ManyArgGVM()
{
Assert.Equal("System.String", CallClass2M1().Result);
}
The repro results in AVs/NullRef exceptions. Even though there is an instantiating stub involved, I think the continuation is trashed earlier - by the managed GVM cache lookup helper.
Although there is a possibility that it is indirectly a problem with the stub.
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIruntime-async