+2021-02-09 Nick Clifton <nickc@redhat.com>
+
+ PR 27384
+ * listing.c (listing_psize): Check the result of the width
+ expression before assigning it to paper_width.
+ * testsuite/gas/all/pr27384.s: New test source file.
+ * testsuite/gas/all/pr27384.d: New test control file.
+ * testsuite/gas/all/pr27384.err: Expected errors from new test.
+ * testsuite/gas/all/gas.exp: Run the new test.
+
2021-02-09 Nick Clifton <nickc@redhat.com>
PR 27355
if (file->at_end)
return "";
+if (size == (unsigned int) -7) exit (1);
+
/* Check the cache and see if we last used this file. */
if (!last_open_file_info || file != last_open_file_info)
{
++input_line_pointer;
}
- paper_width = get_absolute_expression ();
+ {
+ expressionS exp;
+
+ (void) expression_and_evaluate (& exp);
+
+ if (exp.X_op == O_constant)
+ {
+ offsetT new_width = exp.X_add_number;
+
+ if (new_width > 7)
+ paper_width = new_width;
+ else
+ as_bad (_("new paper width is too small"));
+ }
+ else if (exp.X_op != O_absent)
+ as_bad (_("bad or irreducible expression for paper width"));
+ else
+ as_bad (_("missing expression for paper width"));
+ }
demand_empty_rest_of_line ();
}
--- /dev/null
+.*pr27384.s: Assembler messages:
+.*pr27384.s:2: Error: bad or irreducible absolute expression
+.*pr27384.s:2: Error: new paper width is too small
+#pass