gas: simplify ignore_input()
authorJan Beulich <jbeulich@suse.com>
Wed, 18 May 2022 07:36:00 +0000 (09:36 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 18 May 2022 07:36:00 +0000 (09:36 +0200)
First of all convert to switch(), in preparation of adding another
directive here which may not be ignored. While doing so drop dead code:
A string the first two characters of which do not match "if" also wont
match "ifdef" or "ifndef".

gas/cond.c

index b6e538a846f5eb6f6c53dc4c7dee0fd82083dee1..ee441e1230e1d61527cb6902439141cc2f2ae10b 100644 (file)
@@ -513,17 +513,19 @@ ignore_input (void)
     }
 
   /* We cannot ignore certain pseudo ops.  */
-  if (((s[0] == 'i'
-       || s[0] == 'I')
-       && (!strncasecmp (s, "if", 2)
-          || !strncasecmp (s, "ifdef", 5)
-          || !strncasecmp (s, "ifndef", 6)))
-      || ((s[0] == 'e'
-          || s[0] == 'E')
-         && (!strncasecmp (s, "else", 4)
-             || !strncasecmp (s, "endif", 5)
-             || !strncasecmp (s, "endc", 4))))
-    return 0;
+  switch (s[0])
+    {
+    case 'i': case  'I':
+      if (s[1] == 'f' || s[1] == 'F')
+       return 0;
+      break;
+    case 'e': case 'E':
+      if (!strncasecmp (s, "else", 4)
+         || !strncasecmp (s, "endif", 5)
+         || !strncasecmp (s, "endc", 4))
+       return 0;
+      break;
+    }
 
   return (current_cframe != NULL) && (current_cframe->ignoring);
 }