gas: expose flag_macro_alternate globally
authorJan Beulich <jbeulich@suse.com>
Fri, 17 Mar 2023 09:06:18 +0000 (10:06 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 17 Mar 2023 09:06:18 +0000 (10:06 +0100)
Yet again with the removal of gasp about 20 years ago this extra level
of indirection isn't necessary anymore either. Drop macro.c's local
variable and make as.c's global.

While doing the conversion, switch the variable to "bool".

gas/as.c
gas/as.h
gas/macro.c
gas/macro.h
gas/read.c

index 39873662a9aaf6c49f2df0f4ca537d4772a0fbf2..6839c841588def427ac5d2b6594b2b63f7c01384 100644 (file)
--- a/gas/as.c
+++ b/gas/as.c
@@ -125,8 +125,6 @@ static struct defsym_list *defsyms;
 
 static long start_time;
 
-static int flag_macro_alternate;
-
 \f
 #ifdef USE_EMULATIONS
 #define EMULATION_ENVIRON "AS_EMULATION"
@@ -1310,7 +1308,7 @@ gas_init (void)
   expr_begin ();
   eh_begin ();
 
-  macro_init (flag_macro_alternate);
+  macro_init ();
 
   dwarf2_init ();
 
index 4d3a71410ff597d6e7b8a6ffc6090f8683fb7e55..99ffe77afd27cdd63e533e9b0e9d5bf1fd40ee4d 100644 (file)
--- a/gas/as.h
+++ b/gas/as.h
@@ -305,6 +305,9 @@ COMMON int flag_keep_locals; /* -L */
 /* True if we are assembling in MRI mode.  */
 COMMON int flag_mri;
 
+/* True if alternate macro mode is in effect.  */
+COMMON bool flag_macro_alternate;
+
 /* Should the data section be made read-only and appended to the text
    section?  */
 COMMON unsigned char flag_readonly_data_in_text; /* -R */
index 5d3b0f2214186d61b7f3e64fda5b64a9fcd5625c..948d76d5bac091d0a66d72d20083290291909717 100644 (file)
@@ -34,7 +34,7 @@
 #define ISSEP(x) \
  ((x) == ' ' || (x) == '\t' || (x) == ',' || (x) == '"' || (x) == ';' \
   || (x) == ')' || (x) == '(' \
-  || ((macro_alternate || flag_mri) && ((x) == '<' || (x) == '>')))
+  || ((flag_macro_alternate || flag_mri) && ((x) == '<' || (x) == '>')))
 
 #define ISBASE(x) \
   ((x) == 'b' || (x) == 'B' \
@@ -50,10 +50,6 @@ htab_t macro_hash;
 
 int macro_defined;
 
-/* Whether we are in alternate syntax mode.  */
-
-static int macro_alternate;
-
 /* Whether we should strip '@' characters.  */
 
 #define macro_strip_at false
@@ -74,12 +70,11 @@ macro_del_f (void *ent)
 /* Initialize macro processing.  */
 
 void
-macro_init (int alternate)
+macro_init (void)
 {
   macro_hash = htab_create_alloc (16, hash_string_tuple, eq_string_tuple,
                                  macro_del_f, notes_calloc, NULL);
   macro_defined = 0;
-  macro_alternate = alternate;
 }
 
 void
@@ -88,14 +83,6 @@ macro_end (void)
   htab_delete (macro_hash);
 }
 
-/* Switch in and out of alternate mode on the fly.  */
-
-void
-macro_set_alternate (int alternate)
-{
-  macro_alternate = alternate;
-}
-
 /* Read input lines till we get to a TO string.
    Increase nesting depth if we get a FROM string.
    Put the results into sb at PTR.
@@ -284,7 +271,7 @@ get_token (size_t idx, sb *in, sb *name)
        }
     }
   /* Ignore trailing &.  */
-  if (macro_alternate && idx < in->len && in->ptr[idx] == '&')
+  if (flag_macro_alternate && idx < in->len && in->ptr[idx] == '&')
     idx++;
   return idx;
 }
@@ -296,8 +283,8 @@ getstring (size_t idx, sb *in, sb *acc)
 {
   while (idx < in->len
         && (in->ptr[idx] == '"'
-            || (in->ptr[idx] == '<' && (macro_alternate || flag_mri))
-            || (in->ptr[idx] == '\'' && macro_alternate)))
+            || (in->ptr[idx] == '<' && (flag_macro_alternate || flag_mri))
+            || (in->ptr[idx] == '\'' && flag_macro_alternate)))
     {
       if (in->ptr[idx] == '<')
        {
@@ -336,7 +323,7 @@ getstring (size_t idx, sb *in, sb *acc)
              else
                escaped = 0;
 
-             if (macro_alternate && in->ptr[idx] == '!')
+             if (flag_macro_alternate && in->ptr[idx] == '!')
                {
                  idx ++;
 
@@ -390,7 +377,7 @@ get_any_string (size_t idx, sb *in, sb *out)
          while (idx < in->len && !ISSEP (in->ptr[idx]))
            sb_add_char (out, in->ptr[idx++]);
        }
-      else if (in->ptr[idx] == '%' && macro_alternate)
+      else if (in->ptr[idx] == '%' && flag_macro_alternate)
        {
          /* Turn the following expression into a string.  */
          expressionS ex;
@@ -410,10 +397,10 @@ get_any_string (size_t idx, sb *in, sb *out)
          sb_add_string (out, buf);
        }
       else if (in->ptr[idx] == '"'
-              || (in->ptr[idx] == '<' && (macro_alternate || flag_mri))
-              || (macro_alternate && in->ptr[idx] == '\''))
+              || (in->ptr[idx] == '<' && (flag_macro_alternate || flag_mri))
+              || (flag_macro_alternate && in->ptr[idx] == '\''))
        {
-         if (macro_alternate && ! macro_strip_at && in->ptr[idx] != '<')
+         if (flag_macro_alternate && ! macro_strip_at && in->ptr[idx] != '<')
            {
              /* Keep the quotes.  */
              sb_add_char (out, '"');
@@ -437,7 +424,7 @@ get_any_string (size_t idx, sb *in, sb *out)
                         && in->ptr[idx] != '\t'))
                 && in->ptr[idx] != ','
                 && (in->ptr[idx] != '<'
-                    || (! macro_alternate && ! flag_mri)))
+                    || (! flag_macro_alternate && ! flag_mri)))
            {
              char tchar = in->ptr[idx];
 
@@ -904,7 +891,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
              src = sub_actual (src, in, &t, formal_hash, '\'', out, 0);
            }
        }
-      else if ((macro_alternate || flag_mri)
+      else if ((flag_macro_alternate || flag_mri)
               && is_name_beginner (in->ptr[src])
               && (! inquote
                   || ! macro_strip_at
@@ -1093,9 +1080,9 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
       while (scan < in->len
             && !ISSEP (in->ptr[scan])
             && !(flag_mri && in->ptr[scan] == '\'')
-            && (!macro_alternate && in->ptr[scan] != '='))
+            && (!flag_macro_alternate && in->ptr[scan] != '='))
        scan++;
-      if (scan < in->len && !macro_alternate && in->ptr[scan] == '=')
+      if (scan < in->len && !flag_macro_alternate && in->ptr[scan] == '=')
        {
          is_keyword = 1;
 
index 6386223f7f6c436da288eac48685609368b573f5..553d88e530098df89ec7fed293037df507c87553 100644 (file)
@@ -83,9 +83,8 @@ extern htab_t macro_hash;
 
 extern int buffer_and_nest (const char *, const char *, sb *,
                            size_t (*) (sb *));
-extern void macro_init (int);
+extern void macro_init (void);
 extern void macro_end (void);
-extern void macro_set_alternate (int);
 extern macro_entry *define_macro (sb *, sb *, size_t (*) (sb *));
 extern int check_macro (const char *, sb *, const char **, macro_entry **);
 extern void delete_macro (const char *);
index 11ceafb12dafdc73044528d446001add0fdb8094..ac39fc9582ebb1cdfef70a1181355869b0671ac8 100644 (file)
@@ -1616,7 +1616,7 @@ static void
 s_altmacro (int on)
 {
   demand_empty_rest_of_line ();
-  macro_set_alternate (on);
+  flag_macro_alternate = on;
 }
 
 /* Read a symbol name from input_line_pointer.