From 35c1a4396497a4009c99e5587aa908bb6df4e1e6 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 8 Dec 2015 10:12:54 +0100 Subject: gas: don't get confused by .asci{i,z} after .struct While not allowed, this certainly shouldn't result in confusing the programmer (by skipping lines in unexpected ways): Without returning, demand_empty_rest_of_line() (at the end of the function) will demand the _next_ line to be empty, and without the conditional we would ignore the next line. --- gas/read.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'gas/read.c') diff --git a/gas/read.c b/gas/read.c index 1718aaa..172d75f 100644 --- a/gas/read.c +++ b/gas/read.c @@ -5310,6 +5310,15 @@ stringer (int bits_appendzero) md_cons_align (1); #endif + /* If we have been switched into the abs_section then we + will not have an obstack onto which we can hang strings. */ + if (now_seg == absolute_section) + { + as_bad (_("strings must be placed into a section")); + ignore_rest_of_line (); + return; + } + /* The following awkward logic is to parse ZERO or more strings, comma separated. Recall a string expression includes spaces before the opening '\"' and spaces after the closing '\"'. @@ -5324,14 +5333,6 @@ stringer (int bits_appendzero) { c = ','; /* Do loop. */ } - /* If we have been switched into the abs_section then we - will not have an obstack onto which we can hang strings. */ - if (now_seg == absolute_section) - { - as_bad (_("strings must be placed into a section")); - c = 0; - ignore_rest_of_line (); - } while (c == ',' || c == '<' || c == '"') { -- cgit v1.1