aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2009-08-04 14:56:10 +0000
committerNathan Sidwell <nathan@codesourcery.com>2009-08-04 14:56:10 +0000
commitf86adc0752c2c939c5889ec7ed6ee2d3f20f1fb2 (patch)
tree662a3a6626ad83143d7187177fda05bcbc793d00 /gas
parent07088e95873628decec7b00b769486e6252873b9 (diff)
downloadgdb-f86adc0752c2c939c5889ec7ed6ee2d3f20f1fb2.zip
gdb-f86adc0752c2c939c5889ec7ed6ee2d3f20f1fb2.tar.gz
gdb-f86adc0752c2c939c5889ec7ed6ee2d3f20f1fb2.tar.bz2
* config/tc-arm.c (my_get_expression): Detect missing expressions.
testsuite/ * gas/arm/missing.s: New. * gas/arm/missing.d: New. * gas/arm/missing.l: New.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-arm.c7
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/arm/missing.d3
-rw-r--r--gas/testsuite/gas/arm/missing.l3
-rw-r--r--gas/testsuite/gas/arm/missing.s2
6 files changed, 22 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 62c8a61..58564c6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2009-08-04 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/tc-arm.c (my_get_expression): Detect missing expressions.
+
2009-08-02 Eric B. Weddington <eric.weddington@atmel.com>
* config/tc-avr.c (mcu_types): Add atmega8m1, atmega8c1, atmega16c1.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 1fe7f4c..b843b62 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -913,13 +913,14 @@ my_get_expression (expressionS * ep, char ** str, int prefix_mode)
seg = expression (ep);
in_my_get_expression = 0;
- if (ep->X_op == O_illegal)
+ if (ep->X_op == O_illegal || ep->X_op == O_absent)
{
- /* We found a bad expression in md_operand(). */
+ /* We found a bad or missing expression in md_operand(). */
*str = input_line_pointer;
input_line_pointer = save_in;
if (inst.error == NULL)
- inst.error = _("bad expression");
+ inst.error = (ep->X_op == O_absent
+ ? _("missing expression") :_("bad expression"));
return 1;
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 4ab5e72..29b04dd 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-08-04 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gas/arm/missing.s: New.
+ * gas/arm/missing.d: New.
+ * gas/arm/missing.l: New.
+
2009-07-15 Daniel Gutson <dgutson@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
diff --git a/gas/testsuite/gas/arm/missing.d b/gas/testsuite/gas/arm/missing.d
new file mode 100644
index 0000000..6a0cbf2
--- /dev/null
+++ b/gas/testsuite/gas/arm/missing.d
@@ -0,0 +1,3 @@
+#name: missing operands
+#as: -march=armv5
+#error-output: missing.l
diff --git a/gas/testsuite/gas/arm/missing.l b/gas/testsuite/gas/arm/missing.l
new file mode 100644
index 0000000..d6e5965
--- /dev/null
+++ b/gas/testsuite/gas/arm/missing.l
@@ -0,0 +1,3 @@
+[^:]*: Assembler messages:
+[^:]*:1: Error: missing expression -- `bl'
+[^:]*:2: Error: missing expression -- `blx'
diff --git a/gas/testsuite/gas/arm/missing.s b/gas/testsuite/gas/arm/missing.s
new file mode 100644
index 0000000..c3e2935
--- /dev/null
+++ b/gas/testsuite/gas/arm/missing.s
@@ -0,0 +1,2 @@
+ bl
+ blx