aboutsummaryrefslogtreecommitdiff
path: root/gas/config/obj-coff.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-04-24 15:30:56 +0000
committerIan Lance Taylor <ian@airs.com>1996-04-24 15:30:56 +0000
commit116bf30f41acfe59b86e585c6110db6e2c37b05f (patch)
tree3e2cd68fe61b3e91d51f33398573d665146f5e9c /gas/config/obj-coff.c
parent894d8e69468e4ba44539fa297ae216bc9885f789 (diff)
downloadgdb-116bf30f41acfe59b86e585c6110db6e2c37b05f.zip
gdb-116bf30f41acfe59b86e585c6110db6e2c37b05f.tar.gz
gdb-116bf30f41acfe59b86e585c6110db6e2c37b05f.tar.bz2
* config/obj-coff.c (obj_coff_section): BFD_ASSEMBLER version:
call demand_empty_rest_of_line. Non BFD_ASSEMBLER version: correct handling of input line pointer, and call demand_empty_rest_of_line. PR 9525.
Diffstat (limited to 'gas/config/obj-coff.c')
-rw-r--r--gas/config/obj-coff.c34
1 files changed, 14 insertions, 20 deletions
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index 9ad0f6b..087e250 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -1239,6 +1239,8 @@ obj_coff_section (ignore)
bfd_section_name (stdoutput, sec),
bfd_errmsg (bfd_get_error ()));
}
+
+ demand_empty_rest_of_line ();
}
void
@@ -3285,11 +3287,8 @@ obj_coff_section (ignore)
int ignore;
{
/* Strip out the section name */
- char *section_name;
- char *section_name_end;
+ char *section_name, *name;
char c;
- int argp;
- unsigned int len;
unsigned int exp;
long flags;
@@ -3310,26 +3309,21 @@ obj_coff_section (ignore)
section_name = input_line_pointer;
c = get_symbol_end ();
- section_name_end = input_line_pointer;
- len = section_name_end - section_name;
- input_line_pointer++;
- SKIP_WHITESPACE ();
+ name = xmalloc (input_line_pointer - section_name + 1);
+ strcpy (name, section_name);
- argp = 0;
- if (c == ',')
- argp = 1;
- else if (*input_line_pointer == ',')
- {
- argp = 1;
- ++input_line_pointer;
- SKIP_WHITESPACE ();
- }
+ *input_line_pointer = c;
exp = 0;
flags = 0;
- if (argp)
+
+ SKIP_WHITESPACE ();
+ if (*input_line_pointer == ',')
{
+ ++input_line_pointer;
+ SKIP_WHITESPACE ();
+
if (*input_line_pointer != '"')
exp = get_absolute_expression ();
else
@@ -3360,11 +3354,11 @@ obj_coff_section (ignore)
}
}
- subseg_new (section_name, (subsegT) exp);
+ subseg_new (name, (subsegT) exp);
segment_info[now_seg].scnhdr.s_flags |= flags;
- *section_name_end = c;
+ demand_empty_rest_of_line ();
}