aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-03-17 10:05:57 +0100
committerJan Beulich <jbeulich@suse.com>2023-03-17 10:05:57 +0100
commitdc3f65f030628a779318ac75d7ec572f16d61132 (patch)
tree14c971f15a6e050a6b0b8c21d6fa3e0f8c1d8f41 /gas
parent6786a0211c9d3c005cd25893ede37e986b69cb49 (diff)
downloadgdb-dc3f65f030628a779318ac75d7ec572f16d61132.zip
gdb-dc3f65f030628a779318ac75d7ec572f16d61132.tar.gz
gdb-dc3f65f030628a779318ac75d7ec572f16d61132.tar.bz2
gas: use flag_mri directly in macro processing
Again with the removal of gasp about 20 years ago the extra level of indirection isn't necessary anymore. Drop macro.c's local variable and use the global flag directly.
Diffstat (limited to 'gas')
-rw-r--r--gas/as.c2
-rw-r--r--gas/macro.c55
-rw-r--r--gas/macro.h3
-rw-r--r--gas/read.c2
4 files changed, 23 insertions, 39 deletions
diff --git a/gas/as.c b/gas/as.c
index 357c13b..3987366 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -1310,7 +1310,7 @@ gas_init (void)
expr_begin ();
eh_begin ();
- macro_init (flag_macro_alternate, flag_mri);
+ macro_init (flag_macro_alternate);
dwarf2_init ();
diff --git a/gas/macro.c b/gas/macro.c
index 25ce962..5d3b0f2 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 || macro_mri) && ((x) == '<' || (x) == '>')))
+ || ((macro_alternate || flag_mri) && ((x) == '<' || (x) == '>')))
#define ISBASE(x) \
((x) == 'b' || (x) == 'B' \
@@ -54,10 +54,6 @@ int macro_defined;
static int macro_alternate;
-/* Whether we are in MRI mode. */
-
-static int macro_mri;
-
/* Whether we should strip '@' characters. */
#define macro_strip_at false
@@ -78,13 +74,12 @@ macro_del_f (void *ent)
/* Initialize macro processing. */
void
-macro_init (int alternate, int mri)
+macro_init (int alternate)
{
macro_hash = htab_create_alloc (16, hash_string_tuple, eq_string_tuple,
macro_del_f, notes_calloc, NULL);
macro_defined = 0;
macro_alternate = alternate;
- macro_mri = mri;
}
void
@@ -101,14 +96,6 @@ macro_set_alternate (int alternate)
macro_alternate = alternate;
}
-/* Switch in and out of MRI mode on the fly. */
-
-void
-macro_mri_mode (int mri)
-{
- macro_mri = mri;
-}
-
/* 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.
@@ -205,7 +192,7 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
if (i < ptr->len && (ptr->ptr[i] == '.'
|| NO_PSEUDO_DOT
- || macro_mri))
+ || flag_mri))
{
if (! flag_m68k_mri && ptr->ptr[i] == '.')
i++;
@@ -309,7 +296,7 @@ getstring (size_t idx, sb *in, sb *acc)
{
while (idx < in->len
&& (in->ptr[idx] == '"'
- || (in->ptr[idx] == '<' && (macro_alternate || macro_mri))
+ || (in->ptr[idx] == '<' && (macro_alternate || flag_mri))
|| (in->ptr[idx] == '\'' && macro_alternate)))
{
if (in->ptr[idx] == '<')
@@ -423,7 +410,7 @@ 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 || macro_mri))
+ || (in->ptr[idx] == '<' && (macro_alternate || flag_mri))
|| (macro_alternate && in->ptr[idx] == '\''))
{
if (macro_alternate && ! macro_strip_at && in->ptr[idx] != '<')
@@ -450,7 +437,7 @@ get_any_string (size_t idx, sb *in, sb *out)
&& in->ptr[idx] != '\t'))
&& in->ptr[idx] != ','
&& (in->ptr[idx] != '<'
- || (! macro_alternate && ! macro_mri)))
+ || (! macro_alternate && ! flag_mri)))
{
char tchar = in->ptr[idx];
@@ -553,7 +540,7 @@ do_formals (macro_entry *macro, size_t idx, sb *in)
idx = sb_skip_white (idx, in);
/* This is a formal. */
name = sb_terminate (&formal->name);
- if (! macro_mri
+ if (! flag_mri
&& idx < in->len
&& in->ptr[idx] == ':'
&& (! is_name_beginner (':')
@@ -625,7 +612,7 @@ do_formals (macro_entry *macro, size_t idx, sb *in)
}
}
- if (macro_mri)
+ if (flag_mri)
{
formal_entry *formal = new_formal ();
@@ -764,7 +751,7 @@ get_apost_token (size_t idx, sb *in, sb *name, int kind)
idx = get_token (idx, in, name);
if (idx < in->len
&& in->ptr[idx] == kind
- && (! macro_mri || macro_strip_at)
+ && (! flag_mri || macro_strip_at)
&& (! macro_strip_at || kind == '@'))
idx++;
return idx;
@@ -838,7 +825,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
if (in->ptr[src] == '&')
{
sb_reset (&t);
- if (macro_mri)
+ if (flag_mri)
{
if (src + 1 < in->len && in->ptr[src + 1] == '&')
src = sub_actual (src + 2, in, &t, formal_hash, '\'', out, 1);
@@ -887,7 +874,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
sb_add_char (out, '&');
src++;
}
- else if (macro_mri && src < in->len && ISALNUM (in->ptr[src]))
+ else if (flag_mri && src < in->len && ISALNUM (in->ptr[src]))
{
int ind;
formal_entry *f;
@@ -917,7 +904,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 || macro_mri)
+ else if ((macro_alternate || flag_mri)
&& is_name_beginner (in->ptr[src])
&& (! inquote
|| ! macro_strip_at
@@ -970,7 +957,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
}
}
else if (in->ptr[src] == '"'
- || (macro_mri && in->ptr[src] == '\''))
+ || (flag_mri && in->ptr[src] == '\''))
{
inquote = !inquote;
sb_add_char (out, in->ptr[src++]);
@@ -985,7 +972,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
++src;
}
}
- else if (macro_mri
+ else if (flag_mri
&& in->ptr[src] == '='
&& src + 1 < in->len
&& in->ptr[src + 1] == '=')
@@ -1070,7 +1057,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
while (f != NULL && f->index < 0)
f = f->next;
- if (macro_mri)
+ if (flag_mri)
{
/* The macro may be called with an optional qualifier, which may
be referred to in the macro body as \0. */
@@ -1105,7 +1092,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
scan = idx;
while (scan < in->len
&& !ISSEP (in->ptr[scan])
- && !(macro_mri && in->ptr[scan] == '\'')
+ && !(flag_mri && in->ptr[scan] == '\'')
&& (!macro_alternate && in->ptr[scan] != '='))
scan++;
if (scan < in->len && !macro_alternate && in->ptr[scan] == '=')
@@ -1162,7 +1149,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
formal_entry **pf;
int c;
- if (!macro_mri)
+ if (!flag_mri)
{
err = _("too many positional arguments");
break;
@@ -1196,7 +1183,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
while (f != NULL && f->index < 0);
}
- if (! macro_mri)
+ if (! flag_mri)
idx = sb_skip_comma (idx, in);
else
{
@@ -1217,7 +1204,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
m->name);
}
- if (macro_mri)
+ if (flag_mri)
{
ptr = str_hash_find (m->formal_hash,
macro_strip_at ? "$NARG" : "NARG");
@@ -1233,7 +1220,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
}
/* Discard any unnamed formal arguments. */
- if (macro_mri)
+ if (flag_mri)
{
formal_entry **pf;
@@ -1271,7 +1258,7 @@ check_macro (const char *line, sb *expand,
sb line_sb;
if (! is_name_beginner (*line)
- && (! macro_mri || *line != '.'))
+ && (! flag_mri || *line != '.'))
return 0;
s = line + 1;
diff --git a/gas/macro.h b/gas/macro.h
index 7354826..6386223 100644
--- a/gas/macro.h
+++ b/gas/macro.h
@@ -83,10 +83,9 @@ extern htab_t macro_hash;
extern int buffer_and_nest (const char *, const char *, sb *,
size_t (*) (sb *));
-extern void macro_init (int, int);
+extern void macro_init (int);
extern void macro_end (void);
extern void macro_set_alternate (int);
-extern void macro_mri_mode (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 *);
diff --git a/gas/read.c b/gas/read.c
index 0320d02..11ceafb 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -2784,7 +2784,6 @@ s_mri (int ignore ATTRIBUTE_UNUSED)
#ifdef TC_M68K
flag_m68k_mri = 1;
#endif
- macro_mri_mode (1);
}
else
{
@@ -2792,7 +2791,6 @@ s_mri (int ignore ATTRIBUTE_UNUSED)
#ifdef TC_M68K
flag_m68k_mri = 0;
#endif
- macro_mri_mode (0);
}
/* Operator precedence changes in m68k MRI mode, so we need to