summaryrefslogtreecommitdiff
path: root/gas/macro.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2012-06-07 12:47:23 +0000
committerAlan Modra <amodra@bigpond.net.au>2012-06-07 12:47:23 +0000
commit125b1929a85d06c87fcfa6fd44d8ab973ea40083 (patch)
tree97126939e85d55f203ca52399c2f58bc93262970 /gas/macro.c
parentf55e92d7f8e9302250480cce9172c5c2fed28d00 (diff)
downloadbinutils-redhat-125b1929a85d06c87fcfa6fd44d8ab973ea40083.tar.gz
PR gas/14201
* sb.h (sb_max_power_two): Delete. (struct sb): Delete "item" and "pot". Make "len" a size_t. Add "max". (sb_element): Delete. (sb_add_char, sb_add_buffer, sb_skip_comma, sb_skip_write): Update prototypes. * sb.c (string_count, free_list): Delete. (sb_build, sb_kill, sb_check): Rewrite. (scrub_from_sb, sb_add_char, sb_add_string, sb_add_buffer, sb_skip_white, sb_skip_comma): Replace assorted int params, vars and return types with size_t. * input-scrub.c: Likewise. * macro.c: Likewise. * macro.h: Likewise. * as.c: Likewise. * as.h: Likewise. * input-file.h: Likewise. * input-file.c: Likewise. * read.c: Likewise. * app.c: ..or ptrdiff_t. * input-file.c (input_file_get): Use ferror. (input_file_give_next_buffer): Use input_file_get.
Diffstat (limited to 'gas/macro.c')
-rw-r--r--gas/macro.c68
1 files changed, 34 insertions, 34 deletions
diff --git a/gas/macro.c b/gas/macro.c
index a74b40bbff..b3e0fd00a9 100644
--- a/gas/macro.c
+++ b/gas/macro.c
@@ -1,6 +1,6 @@
/* macro.c - macro support for gas
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
- 2004, 2005, 2006, 2007, 2008, 2011 Free Software Foundation, Inc.
+ 2004, 2005, 2006, 2007, 2008, 2011, 2012 Free Software Foundation, Inc.
Written by Steve and Judy Chamberlain of Cygnus Support,
sac@cygnus.com
@@ -65,7 +65,7 @@ static int macro_strip_at;
/* Function to use to parse an expression. */
-static int (*macro_expr) (const char *, int, sb *, int *);
+static size_t (*macro_expr) (const char *, size_t, sb *, offsetT *);
/* Number of macro expansions that have been done. */
@@ -75,7 +75,7 @@ static int macro_number;
void
macro_init (int alternate, int mri, int strip_at,
- int (*exp) (const char *, int, sb *, int *))
+ size_t (*exp) (const char *, size_t, sb *, offsetT *))
{
macro_hash = hash_new ();
macro_defined = 0;
@@ -110,14 +110,13 @@ macro_mri_mode (int mri)
int
buffer_and_nest (const char *from, const char *to, sb *ptr,
- int (*get_line) (sb *))
+ size_t (*get_line) (sb *))
{
- int from_len;
- int to_len = strlen (to);
+ size_t from_len;
+ size_t to_len = strlen (to);
int depth = 1;
- int line_start = ptr->len;
-
- int more = get_line (ptr);
+ size_t line_start = ptr->len;
+ size_t more = get_line (ptr);
if (to_len == 4 && strcasecmp (to, "ENDR") == 0)
{
@@ -130,7 +129,7 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
while (more)
{
/* Try to find the first pseudo op on the line. */
- int i = line_start;
+ size_t i = line_start;
bfd_boolean had_colon = FALSE;
/* With normal syntax we can suck what we want till we get
@@ -227,8 +226,8 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
/* Pick up a token. */
-static int
-get_token (int idx, sb *in, sb *name)
+static size_t
+get_token (size_t idx, sb *in, sb *name)
{
if (idx < in->len
&& is_name_beginner (in->ptr[idx]))
@@ -253,8 +252,8 @@ get_token (int idx, sb *in, sb *name)
/* Pick up a string. */
-static int
-getstring (int idx, sb *in, sb *acc)
+static size_t
+getstring (size_t idx, sb *in, sb *acc)
{
while (idx < in->len
&& (in->ptr[idx] == '"'
@@ -339,8 +338,8 @@ getstring (int idx, sb *in, sb *acc)
(string) -> return (string-including-whitespaces)
xyx<whitespace> -> return xyz. */
-static int
-get_any_string (int idx, sb *in, sb *out)
+static size_t
+get_any_string (size_t idx, sb *in, sb *out)
{
sb_reset (out);
idx = sb_skip_white (idx, in);
@@ -354,7 +353,7 @@ get_any_string (int idx, sb *in, sb *out)
}
else if (in->ptr[idx] == '%' && macro_alternate)
{
- int val;
+ offsetT val;
char buf[20];
/* Turns the next expression into a string. */
@@ -363,7 +362,7 @@ get_any_string (int idx, sb *in, sb *out)
idx + 1,
in,
&val);
- sprintf (buf, "%d", val);
+ sprintf (buf, "%" BFD_VMA_FMT "d", val);
sb_add_string (out, buf);
}
else if (in->ptr[idx] == '"'
@@ -474,8 +473,8 @@ del_formal (formal_entry *formal)
/* Pick up the formal parameters of a macro definition. */
-static int
-do_formals (macro_entry *macro, int idx, sb *in)
+static size_t
+do_formals (macro_entry *macro, size_t idx, sb *in)
{
formal_entry **p = &macro->formals;
const char *name;
@@ -484,7 +483,7 @@ do_formals (macro_entry *macro, int idx, sb *in)
while (idx < in->len)
{
formal_entry *formal = new_formal ();
- int cidx;
+ size_t cidx;
idx = get_token (idx, in, &formal->name);
if (formal->name.len == 0)
@@ -626,8 +625,8 @@ free_macro (macro_entry *macro)
the macro which was defined. */
const char *
-define_macro (int idx, sb *in, sb *label,
- int (*get_line) (sb *),
+define_macro (size_t idx, sb *in, sb *label,
+ size_t (*get_line) (sb *),
char *file, unsigned int line,
const char **namep)
{
@@ -669,7 +668,7 @@ define_macro (int idx, sb *in, sb *label,
}
else
{
- int cidx;
+ size_t cidx;
idx = get_token (idx, in, &name);
macro->name = sb_terminate (&name);
@@ -706,8 +705,8 @@ define_macro (int idx, sb *in, sb *label,
/* Scan a token, and then skip KIND. */
-static int
-get_apost_token (int idx, sb *in, sb *name, int kind)
+static size_t
+get_apost_token (size_t idx, sb *in, sb *name, int kind)
{
idx = get_token (idx, in, name);
if (idx < in->len
@@ -720,11 +719,11 @@ get_apost_token (int idx, sb *in, sb *name, int kind)
/* Substitute the actual value for a formal parameter. */
-static int
-sub_actual (int start, sb *in, sb *t, struct hash_control *formal_hash,
+static size_t
+sub_actual (size_t start, sb *in, sb *t, struct hash_control *formal_hash,
int kind, sb *out, int copyifnotthere)
{
- int src;
+ size_t src;
formal_entry *ptr;
src = get_apost_token (start, in, t, kind);
@@ -774,7 +773,8 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
struct hash_control *formal_hash, const macro_entry *macro)
{
sb t;
- int src = 0, inquote = 0, macro_line = 0;
+ size_t src = 0;
+ int inquote = 0, macro_line = 0;
formal_entry *loclist = NULL;
const char *err = NULL;
@@ -1002,7 +1002,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
body. */
static const char *
-macro_expand (int idx, sb *in, macro_entry *m, sb *out)
+macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
{
sb t;
formal_entry *ptr;
@@ -1049,7 +1049,7 @@ macro_expand (int idx, sb *in, macro_entry *m, sb *out)
idx = sb_skip_white (idx, in);
while (idx < in->len)
{
- int scan;
+ size_t scan;
/* Look and see if it's a positional or keyword arg. */
scan = idx;
@@ -1289,7 +1289,7 @@ delete_macro (const char *name)
success, or an error message otherwise. */
const char *
-expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *))
+expand_irp (int irpc, size_t idx, sb *in, sb *out, size_t (*get_line) (sb *))
{
sb sub;
formal_entry f;
@@ -1345,7 +1345,7 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *))
{
if (in->ptr[idx] == '"')
{
- int nxt;
+ size_t nxt;
if (irpc)
in_quotes = ! in_quotes;