From 89603ecdd466f8a01f5ef59d9a4d2f2c13813e89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Rylek?= Date: Wed, 23 Jun 2021 23:24:06 +0200 Subject: [PATCH] Move setting fHasVirtualStaticMethods out of sanity check section (#54574) --- src/coreclr/vm/methodtablebuilder.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/coreclr/vm/methodtablebuilder.cpp b/src/coreclr/vm/methodtablebuilder.cpp index 24dfe4c124015..ad827323c69bc 100644 --- a/src/coreclr/vm/methodtablebuilder.cpp +++ b/src/coreclr/vm/methodtablebuilder.cpp @@ -2906,6 +2906,13 @@ MethodTableBuilder::EnumerateClassMethods() IDS_CLASSLOAD_BADSPECIALMETHOD, tok); } + + // Check for the presence of virtual static methods + if (IsMdVirtual(dwMemberAttrs) && IsMdStatic(dwMemberAttrs)) + { + bmtProp->fHasVirtualStaticMethods = TRUE; + } + // // But first - minimal flags validity checks // @@ -2972,11 +2979,7 @@ MethodTableBuilder::EnumerateClassMethods() } if(IsMdStatic(dwMemberAttrs)) { - if (fIsClassInterface) - { - bmtProp->fHasVirtualStaticMethods = TRUE; - } - else + if (!fIsClassInterface) { // Static virtual methods are only allowed to exist in interfaces BuildMethodTableThrowException(BFA_VIRTUAL_STATIC_METHOD);