summaryrefslogtreecommitdiff
path: root/src/vm/jitinterface.cpp
diff options
context:
space:
mode:
authorMichal Strehovský <MichalStrehovsky@users.noreply.github.com>2018-11-15 14:08:27 +0100
committerGitHub <noreply@github.com>2018-11-15 14:08:27 +0100
commit4b01ac0d72d2b271a3f664d1fe3761287f5efc6a (patch)
treece702363d5b1a61f3783f8fc1e27dc182f71f8d6 /src/vm/jitinterface.cpp
parentbf1a55fab3f07771632a76d52c6d9287a339bb79 (diff)
downloadcoreclr-4b01ac0d72d2b271a3f664d1fe3761287f5efc6a.tar.gz
coreclr-4b01ac0d72d2b271a3f664d1fe3761287f5efc6a.tar.bz2
coreclr-4b01ac0d72d2b271a3f664d1fe3761287f5efc6a.zip
Allow supressing exceptions in diamond inheritance cases (#20458)
Diffstat (limited to 'src/vm/jitinterface.cpp')
-rw-r--r--src/vm/jitinterface.cpp22
1 files changed, 2 insertions, 20 deletions
diff --git a/src/vm/jitinterface.cpp b/src/vm/jitinterface.cpp
index 4423c98f8a..51ab2cecab 100644
--- a/src/vm/jitinterface.cpp
+++ b/src/vm/jitinterface.cpp
@@ -8850,29 +8850,11 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE
pOwnerMT = pOwnerMT->GetCanonicalMethodTable();
}
- // In a try block because the interface method resolution might end up being
- // ambiguous (diamond inheritance case of default interface methods).
- EX_TRY
- {
- pDevirtMD = pDerivedMT->GetMethodDescForInterfaceMethod(TypeHandle(pOwnerMT), pBaseMD);
- }
- EX_CATCH
- {
- }
- EX_END_CATCH(RethrowTransientExceptions)
+ pDevirtMD = pDerivedMT->GetMethodDescForInterfaceMethod(TypeHandle(pOwnerMT), pBaseMD, FALSE /* throwOnConflict */);
}
else if (!pBaseMD->HasClassOrMethodInstantiation())
{
- // In a try block because the interface method resolution might end up being
- // ambiguous (diamond inheritance case of default interface methods).
- EX_TRY
- {
- pDevirtMD = pDerivedMT->GetMethodDescForInterfaceMethod(pBaseMD);
- }
- EX_CATCH
- {
- }
- EX_END_CATCH(RethrowTransientExceptions)
+ pDevirtMD = pDerivedMT->GetMethodDescForInterfaceMethod(pBaseMD, FALSE /* throwOnConflict */);
}
if (pDevirtMD == nullptr)