}
c = 0;
symbolP = symbol_find_or_make (name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
S_SET_WEAK (symbolP);
if (c == ',')
c = get_symbol_name (§ion_name);
name = xmemdup0 (section_name, input_line_pointer - section_name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
exp = 0;
flags = SEC_NO_FLAGS;
c = get_symbol_name (& name);
sym = symbol_find_or_make (name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
/* There is no symbol name if input_line_pointer has not moved. */
if (name == input_line_pointer)
bad = 1;
}
- *input_line_pointer = c;
+ restore_line_pointer (c);
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
as_bad (_("expected comma after name in .vtable_inherit"));
symbolS *sym;
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
*p = 0;
c = get_symbol_name (&name);
/* Just after name is now '\0'. */
p = input_line_pointer;
- *p = c;
+ restore_line_pointer (c);
if (name == p)
{
goto done;
}
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (*input_line_pointer == ',')
input_line_pointer++;
c = get_symbol_name (&name);
symbolP = symbol_find_or_make (name);
obj_mach_o_set_symbol_qualifier (symbolP, ntype);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
c = *input_line_pointer;
if (c == ',')
{
{
c = get_symbol_name (&name);
symbolP = symbol_find_or_make (name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
S_SET_WEAK (symbolP);
if (c == ',')
{
goto err_report;
}
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != '!')
{
if (r->require_seq)
/* Just after name is now '\0'. */
p = input_line_pointer;
- *p = c;
+ restore_line_pointer (c);
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
/* Alpha OSF/1 compiler doesn't provide the comma, gcc does. */
if (*input_line_pointer == ',')
/* The .ent directive is sometimes followed by a number. Not sure
what it really means, but ignore it. */
- *input_line_pointer = name_end;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (name_end);
+ SKIP_WHITESPACE ();
if (*input_line_pointer == ',')
{
input_line_pointer++;
SKIP_WHITESPACE ();
c = get_symbol_name (&beg);
- *input_line_pointer = c;
+ restore_line_pointer (c);
vms_flags |= s_alpha_section_word (beg, input_line_pointer - beg);
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
}
while (*input_line_pointer++ == ',');
c = get_symbol_name (&name);
p = input_line_pointer;
symbolP = symbol_find_or_make (name);
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
*p = 0;
return;
}
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
/* Extra check for TLS: base. */
if (*input_line_pointer == '@')
{
delim1 = get_symbol_name (&name);
name = xstrdup (name);
- *input_line_pointer = delim1;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (delim1);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
static void
dot_personality (int dummy ATTRIBUTE_UNUSED)
{
- char *name, *p, c;
+ char *name, c;
if (!in_procedure ("personality"))
return;
SKIP_WHITESPACE ();
c = get_symbol_name (&name);
- p = input_line_pointer;
unwind.personality_routine = symbol_find_or_make (name);
unwind.force_unwind_entry = 1;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
demand_empty_rest_of_line ();
}
static void
dot_proc (int dummy ATTRIBUTE_UNUSED)
{
- char *name, *p, c;
+ char *name, c;
symbolS *sym;
proc_pending *pending, *last_pending;
{
SKIP_WHITESPACE ();
c = get_symbol_name (&name);
- p = input_line_pointer;
if (!*name)
as_bad (_("Empty argument of .proc"));
else
}
symbol_get_bfdsym (sym)->flags |= BSF_FUNCTION;
}
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
break;
++input_line_pointer;
/* Parse names of main and alternate entry points. */
while (1)
{
- char *name, *p, c;
+ char *name, c;
SKIP_WHITESPACE ();
c = get_symbol_name (&name);
- p = input_line_pointer;
if (!*name)
(md.unwind_check == unwind_check_warning
? as_warn
if (!sym || !pending)
as_warn (_("`%s' was not specified with previous .proc"), name);
}
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
break;
++input_line_pointer;
{
ch = get_symbol_name (&start);
len = strlen (ia64_canonicalize_symbol_name (start));
- *input_line_pointer = ch;
+ restore_line_pointer (ch);
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (*input_line_pointer != '[')
{
as_bad (_("Expected '['"));
md.flags |= EF_IA_64_ABI64;
else
as_bad (_("Unknown psr option `%s'"), option);
- *input_line_pointer = ch;
+ restore_line_pointer (ch);
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
break;
if (str_hash_insert (md.entry_hash, S_GET_NAME (symbolP), symbolP, 0))
as_bad (_("duplicate entry hint %s"), name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
c = *input_line_pointer;
if (c == ',')
{
delim = get_symbol_name (&name);
end_name = input_line_pointer;
- *end_name = delim;
+ restore_line_pointer (delim);
if (name == end_name)
{
return;
}
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
/* Just after name is now '\0'. */
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
as_bad (_("Expected comma after symbol-name: rest of line ignored."));
symbolP = symbol_find_or_make (name);
S_SET_EXTERNAL (symbolP);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (!is_end_of_line[(unsigned char) *input_line_pointer]
&& (*input_line_pointer != ','))
c = get_symbol_name (&name);
symbolP = symbol_find_or_make (name);
S_SET_WEAK (symbolP);
- *input_line_pointer = c;
+ restore_line_pointer (c);
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (! is_end_of_line[(unsigned char) *input_line_pointer])
{
/* Just after name is now '\0'. */
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
as_bad (_("expected comma after symbol-name: rest of line ignored."));
elf_symbol_type *elfsym;
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
*p = 0;
fix_at_start (symbol_get_frag (ppc_current_csect), 0,
symbol_find_or_make (name), 0, false, BFD_RELOC_NONE);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
c = *input_line_pointer;
if (c == ',')
{
c = get_symbol_name (&name);
p = input_line_pointer;
- *p = c;
+ restore_line_pointer (c);
if (name == p)
{
return;
}
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
/* Accept an optional comma after the name. The comma used to be
required, but Irix 5 cc does not generate it. */
c = get_symbol_name (&name);
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
c = get_symbol_name (&name);
/* Just after name is now '\0'. */
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
as_bad (_("Expected comma after symbol-name"));
{
c = get_symbol_name (&name);
symbolP = symbol_find_or_make (name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
S_SET_STORAGE_CLASS (symbolP, C_EXT);
S_SET_EXTERNAL (symbolP);
if (c == ',')
c = get_symbol_name (&base_name);
/* Just after name is now '\0'. */
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',' && *input_line_pointer != ':')
{
break;
}
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer == ',')
{
name = input_line_pointer++;
if (strcmp (p, "basic_block") == 0)
{
current.flags |= DWARF2_FLAG_BASIC_BLOCK;
- *input_line_pointer = c;
+ restore_line_pointer (c);
}
else if (strcmp (p, "prologue_end") == 0)
{
if (dwarf_level < 3)
dwarf_level = 3;
current.flags |= DWARF2_FLAG_PROLOGUE_END;
- *input_line_pointer = c;
+ restore_line_pointer (c);
}
else if (strcmp (p, "epilogue_begin") == 0)
{
if (dwarf_level < 3)
dwarf_level = 3;
current.flags |= DWARF2_FLAG_EPILOGUE_BEGIN;
- *input_line_pointer = c;
+ restore_line_pointer (c);
}
else if (strcmp (p, "is_stmt") == 0)
{
return;
}
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
}
demand_empty_rest_of_line ();
expressionP->X_add_symbol = symbol_lookup_or_make (name, start);
expressionP->X_add_number = 0;
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ')')
as_bad (_("syntax error in .startof. or .sizeof."));
else
SKIP_WHITESPACE ();
c = get_symbol_name (& name);
delete_macro (name);
- *input_line_pointer = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
}
while (*input_line_pointer++ == ',');
}
else
reloc->u.a.howto = bfd_reloc_name_lookup (stdoutput, r_name);
- *input_line_pointer = c;
+ restore_line_pointer (c);
if (reloc->u.a.howto == NULL)
{
as_bad (_("unrecognized reloc type"));
}
exp.X_op = O_absent;
- SKIP_WHITESPACE_AFTER_NAME ();
+ SKIP_WHITESPACE ();
if (*input_line_pointer == ',')
{
++input_line_pointer;
delim1 = get_symbol_name (& name);
name = xstrdup (name);
- *input_line_pointer = delim1;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (delim1);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
if (default_prefix)
#define SKIP_ALL_WHITESPACE() SKIP_WHITESPACE()
#endif
-#define SKIP_WHITESPACE_AFTER_NAME() \
- do \
- { \
- if (* input_line_pointer == '"') \
- ++ input_line_pointer; \
- if (* input_line_pointer == ' ') \
- ++ input_line_pointer; \
- } \
- while (0)
-
#define LEX_NAME (1) /* may continue a name */
#define LEX_BEGIN_NAME (2) /* may begin a name */
#define LEX_END_NAME (4) /* ends a name */
c = get_symbol_name (&name);
p = input_line_pointer;
- *p = c;
- SKIP_WHITESPACE_AFTER_NAME ();
+ restore_line_pointer (c);
+ SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
*p = 0;