aboutsummaryrefslogtreecommitdiff
path: root/gas/macro.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-03-17 10:06:18 +0100
committerJan Beulich <jbeulich@suse.com>2023-03-17 10:06:18 +0100
commit1250cd639016e5567ba8214acf8bf81e8a3ce2db (patch)
treea64dd97a7c88e61e9f0dc8b5c550604fd23d100d /gas/macro.c
parentdc3f65f030628a779318ac75d7ec572f16d61132 (diff)
downloadbinutils-1250cd639016e5567ba8214acf8bf81e8a3ce2db.zip
binutils-1250cd639016e5567ba8214acf8bf81e8a3ce2db.tar.gz
binutils-1250cd639016e5567ba8214acf8bf81e8a3ce2db.tar.bz2
gas: expose flag_macro_alternate globally
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".
Diffstat (limited to 'gas/macro.c')
-rw-r--r--gas/macro.c41
1 files changed, 14 insertions, 27 deletions
diff --git a/gas/macro.c b/gas/macro.c
index 5d3b0f2..948d76d 100644
--- a/gas/macro.c
+++ b/gas/macro.c
@@ -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;