[verify]Relax the restriction on global methods visibility. Fixes #13890.
authorRodrigo Kumpera <kumpera@gmail.com>
Tue, 20 Aug 2013 19:49:24 +0000 (15:49 -0400)
committerRodrigo Kumpera <kumpera@gmail.com>
Tue, 20 Aug 2013 19:49:24 +0000 (15:49 -0400)
mono/metadata/metadata-verify.c

index adbe7a516216191a48abc935be7d87026464ed0b..0d816016fbbe799d90f7704be19d05911511b8c9 100644 (file)
@@ -2660,8 +2660,8 @@ verify_method_table (VerifyContext *ctx)
                                ADD_ERROR (ctx, g_strdup_printf ("Invalid method row %d is a global method but not Static", i));
                        if (flags & (METHOD_ATTRIBUTE_ABSTRACT | METHOD_ATTRIBUTE_VIRTUAL))
                                ADD_ERROR (ctx, g_strdup_printf ("Invalid method row %d is a global method but is Abstract or Virtual", i));
-                       if (!(access == METHOD_ATTRIBUTE_COMPILER_CONTROLLED || access == METHOD_ATTRIBUTE_PUBLIC || access == METHOD_ATTRIBUTE_PRIVATE))
-                               ADD_ERROR (ctx, g_strdup_printf ("Invalid method row %d is a global method but not CompilerControled, Public or Private", i));
+                       if (access == METHOD_ATTRIBUTE_FAMILY || access == METHOD_ATTRIBUTE_FAM_AND_ASSEM || access == METHOD_ATTRIBUTE_FAM_OR_ASSEM)
+                               ADD_ERROR (ctx, g_strdup_printf ("Invalid method row %d is a global method but not CompilerControled, Public, Private or Assembly", i));
                }
 
                //TODO check valuetype for synchronized