[646997] Correctly emit platform ILOnly flag
authorMarek Safar <marek.safar@gmail.com>
Fri, 15 Oct 2010 18:17:42 +0000 (19:17 +0100)
committerMarek Safar <marek.safar@gmail.com>
Fri, 15 Oct 2010 18:17:42 +0000 (19:17 +0100)
mcs/mcs/codegen.cs
mcs/tests/gtest-450.cs

index b425f993c3566faa69a00e29dc8911c01fc3912f..8b0c5d8f36e33076b3e72984712f0af51642bf7c 100644 (file)
@@ -184,15 +184,15 @@ namespace Mono.CSharp {
 
                        switch (RootContext.Platform) {
                        case Platform.X86:
-                               pekind = PortableExecutableKinds.Required32Bit;
+                               pekind = PortableExecutableKinds.Required32Bit | PortableExecutableKinds.ILOnly;
                                machine = ImageFileMachine.I386;
                                break;
                        case Platform.X64:
-                               pekind = PortableExecutableKinds.PE32Plus;
+                               pekind = PortableExecutableKinds.ILOnly;
                                machine = ImageFileMachine.AMD64;
                                break;
                        case Platform.IA64:
-                               pekind = PortableExecutableKinds.PE32Plus;
+                               pekind = PortableExecutableKinds.ILOnly;
                                machine = ImageFileMachine.IA64;
                                break;
                        case Platform.AnyCPU:
index 541f5e3d817247782da92ab38278cc85afd86eb4..5f78ba0533f990c58bb47836ccfb3fd57075746d 100644 (file)
@@ -12,7 +12,7 @@ class Program {
 
                typeof (Program).Module.GetPEKind (out pekind, out machine);
 
-               if ((pekind & PortableExecutableKinds.ILOnly) != 0)
+               if ((pekind & PortableExecutableKinds.ILOnly) == 0)
                        return 1;
 
                if ((pekind & PortableExecutableKinds.Required32Bit) == 0)