diff --git a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs
index 6632e7439655fc..01bb5fe766d78d 100644
--- a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs
+++ b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs
@@ -221,6 +221,10 @@ public void EmitTypeSignature(TypeDesc typeDesc, SignatureContext context)
EmitPointerTypeSignature((PointerType)typeDesc, context);
return;
+ case TypeFlags.FunctionPointer:
+ EmitFunctionPointerTypeSignature((FunctionPointerType)typeDesc, context);
+ return;
+
case TypeFlags.ByRef:
EmitByRefTypeSignature((ByRefType)typeDesc, context);
break;
@@ -366,6 +370,22 @@ private void EmitPointerTypeSignature(PointerType type, SignatureContext context
EmitTypeSignature(type.ParameterType, context);
}
+ private void EmitFunctionPointerTypeSignature(FunctionPointerType type, SignatureContext context)
+ {
+ SignatureCallingConvention callingConvention = (SignatureCallingConvention)(type.Signature.Flags & MethodSignatureFlags.UnmanagedCallingConventionMask);
+ SignatureAttributes callingConventionAttributes = ((type.Signature.Flags & MethodSignatureFlags.Static) != 0 ? SignatureAttributes.None : SignatureAttributes.Instance);
+
+ EmitElementType(CorElementType.ELEMENT_TYPE_FNPTR);
+ EmitUInt((uint)((byte)callingConvention | (byte)callingConventionAttributes));
+ EmitUInt((uint)type.Signature.Length);
+
+ EmitTypeSignature(type.Signature.ReturnType, context);
+ for (int argIndex = 0; argIndex < type.Signature.Length; argIndex++)
+ {
+ EmitTypeSignature(type.Signature[argIndex], context);
+ }
+ }
+
private void EmitByRefTypeSignature(ByRefType type, SignatureContext context)
{
EmitElementType(CorElementType.ELEMENT_TYPE_BYREF);
diff --git a/src/tests/issues.targets b/src/tests/issues.targets
index a720de9c70abc5..56a24fa0786db1 100644
--- a/src/tests/issues.targets
+++ b/src/tests/issues.targets
@@ -925,9 +925,6 @@
https://github.com/dotnet/runtime/issues/63856
-
- https://github.com/dotnet/runtime/issues/72822
-