2004-05-17 Miguel de Icaza <miguel@ximian.com>
authorMiguel de Icaza <miguel@gnome.org>
Mon, 17 May 2004 21:22:51 +0000 (21:22 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Mon, 17 May 2004 21:22:51 +0000 (21:22 -0000)
* class.cs (MemberBase.DoDefine): Pass UNSAFE on interface
definitions.

(Method): Allow UNSAFE here.

* modifiers.cs: Support unsafe reporting.

svn path=/trunk/mcs/; revision=27540

mcs/mcs/ChangeLog
mcs/mcs/class.cs
mcs/mcs/modifiers.cs

index a7a4aff058d305248635ce775cad2c994b3cd90d..2507019497159bac9adb39e2f8ff3d2a384dd1f2 100755 (executable)
@@ -1,3 +1,12 @@
+2004-05-17  Miguel de Icaza  <miguel@ximian.com>
+
+       * class.cs (MemberBase.DoDefine): Pass UNSAFE on interface
+       definitions. 
+
+       (Method): Allow UNSAFE here.
+
+       * modifiers.cs: Support unsafe reporting.
+
 2004-05-17  Marek Safar  <marek.safar@seznam.cz>
 
        * decl.cs: Fix bug #58478.
index 5d589632324e3b30e34fc85c4344dcee2628a8da..c013bfad7392c988b6c6803f8db8fc9aa6313807 100755 (executable)
@@ -2691,7 +2691,7 @@ namespace Mono.CSharp {
                        Modifiers.EXTERN;
 
                const int AllowedInterfaceModifiers =
-                       Modifiers.NEW;
+                       Modifiers.NEW | Modifiers.UNSAFE;
 
                //
                // return_type can be "null" for VOID values.
@@ -4228,7 +4228,7 @@ namespace Mono.CSharp {
                        if (IsInterface) {
                                ModFlags = Modifiers.PUBLIC |
                                        Modifiers.ABSTRACT |
-                                       Modifiers.VIRTUAL;
+                                       Modifiers.VIRTUAL | (ModFlags & Modifiers.UNSAFE);
 
                                flags = MethodAttributes.Public |
                                        MethodAttributes.Abstract |
index 1e17aa3602c997bcef76b7bb42dc58d45a2ef5a0..7a39a0673ecaade8e7c207c02402c6937c54b7a0 100755 (executable)
@@ -68,6 +68,8 @@ namespace Mono.CSharp {
                                s = "extern"; break;
                        case Modifiers.VOLATILE:
                                s = "volatile"; break;
+                       case Modifiers.UNSAFE:
+                               s = "unsafe"; break;
                        }
 
                        return s;