int len;
SKIP_WHITESPACE ();
- if (*input_line_pointer != '"')
+ if (*input_line_pointer == '"')
+ name = demand_copy_C_string (&len);
+ else
{
- as_bad ("Missing section name");
- ignore_rest_of_line ();
- return 0;
+ char *start = input_line_pointer;
+ char c = get_symbol_end ();
+
+ if (input_line_pointer == start)
+ {
+ as_bad ("Missing section name");
+ ignore_rest_of_line ();
+ return 0;
+ }
+ name = obstack_copy (¬es, start, input_line_pointer - start + 1);
+ *input_line_pointer = c;
}
- name = demand_copy_C_string (&len);
if (!name)
{
ignore_rest_of_line ();
md.keep_pending_output = 1;
set_section (name);
+ obstack_free (¬es, name);
cons (size);
obj_elf_previous (0);
md.keep_pending_output = 0;
md.keep_pending_output = 1;
set_section (name);
+ obstack_free (¬es, name);
stmt_float_cons (kind);
obj_elf_previous (0);
md.keep_pending_output = 0;
md.keep_pending_output = 1;
set_section (name);
+ obstack_free (¬es, name);
stringer (zero);
obj_elf_previous (0);
md.keep_pending_output = 0;
md.keep_pending_output = 1;
set_section (name);
+ obstack_free (¬es, name);
md.auto_align = 0;
cons (size);
md.auto_align = saved_auto_align;
md.keep_pending_output = 1;
set_section (name);
+ obstack_free (¬es, name);
md.auto_align = 0;
stmt_float_cons (kind);
md.auto_align = saved_auto_align;
{ "xdata2", dot_xdata, 2 },
{ "xdata4", dot_xdata, 4 },
{ "xdata8", dot_xdata, 8 },
+ { "xdata16", dot_xdata, 16 },
{ "xreal4", dot_xfloat_cons, 'f' },
{ "xreal8", dot_xfloat_cons, 'd' },
{ "xreal10", dot_xfloat_cons, 'x' },
{ "xdata2.ua", dot_xdata_ua, 2 },
{ "xdata4.ua", dot_xdata_ua, 4 },
{ "xdata8.ua", dot_xdata_ua, 8 },
+ { "xdata16.ua", dot_xdata_ua, 16 },
{ "xreal4.ua", dot_xfloat_cons_ua, 'f' },
{ "xreal8.ua", dot_xfloat_cons_ua, 'd' },
{ "xreal10.ua", dot_xfloat_cons_ua, 'x' },