diff options
author | Michal Strehovský <MichalStrehovsky@users.noreply.github.com> | 2018-11-15 14:08:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-15 14:08:27 +0100 |
commit | 4b01ac0d72d2b271a3f664d1fe3761287f5efc6a (patch) | |
tree | ce702363d5b1a61f3783f8fc1e27dc182f71f8d6 /src/vm/jitinterface.cpp | |
parent | bf1a55fab3f07771632a76d52c6d9287a339bb79 (diff) | |
download | coreclr-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.cpp | 22 |
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) |