[mcs] Fix wrong range check for pragma warning CSxxx. Fixes #43471
authorMarek Safar <marek.safar@gmail.com>
Thu, 18 Aug 2016 21:04:32 +0000 (23:04 +0200)
committerMarek Safar <marek.safar@gmail.com>
Thu, 18 Aug 2016 21:06:26 +0000 (23:06 +0200)
mcs/mcs/cs-tokenizer.cs
mcs/tests/test-908.cs
mcs/tests/ver-il-net_4_x.xml

index cd7ce1ac68fe34b998cd241d6f2d6783873866ea..1c63e70b91d269a9f647f0505a8377731bbd0c98 100644 (file)
@@ -2547,7 +2547,7 @@ namespace Mono.CSharp
                                                id_builder [pos] = (char)c;
 
                                                if (c >= '0' && c <= '9') {
-                                                       if (pos == 6 && id_builder [0] == 'C' && id_builder [1] == 'S') {
+                                                       if (pos == 5 && id_builder [0] == 'C' && id_builder [1] == 'S') {
                                                                // Recognize CSXXXX as C# XXXX warning
                                                                number = 0;
                                                                int pow = 1000;
index fdc40f6ce394563e14c554452a0e0d066e858d47..c27379dfd3bcb876c5cd0ac280832d094cb4a4bf 100644 (file)
@@ -11,4 +11,12 @@ public class Test
        }
 #pragma warning restore CS1685
 #pragma warning restore public, 1701
+
+       public static void TestCS ()
+       {
+               return;
+#pragma warning disable CS0162
+               return;
+#pragma warning restore
+       }
 }
\ No newline at end of file
index 0964285cc654069417501810315bf9f5012be27d..a95de56e90c17e519bd041af1030ecd6cab58c3e 100644 (file)
       <method name="Void .ctor()" attrs="6278">
         <size>7</size>
       </method>
+      <method name="Void TestCS()" attrs="150">
+        <size>7</size>
+      </method>
     </type>
   </test>
   <test name="test-909.cs">