The optimized delegate calling code in mini_emit_method_call_full ()
expects calls to Invoke to stay a virtual call.
if (!iface_method ||
iface_method->is_generic ||
iface_method->dynamic || // Reflection.Emit-generated methods should have this flag
- !strcmp (iface_method->name, "GetHashCode")) // the callvirt handler itself optimizes those
+ !strcmp (iface_method->name, "GetHashCode") || // the callvirt handler itself optimizes those
+ (iface_method->iflags & METHOD_IMPL_ATTRIBUTE_RUNTIME))
return NULL;
MonoMethodSignature* iface_method_sig;