* config/tc-arm.c (my_get_expression): Detect missing expressions.
authorNathan Sidwell <nathan@codesourcery.com>
Tue, 4 Aug 2009 14:56:10 +0000 (14:56 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Tue, 4 Aug 2009 14:56:10 +0000 (14:56 +0000)
testsuite/
* gas/arm/missing.s: New.
* gas/arm/missing.d: New.
* gas/arm/missing.l: New.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/missing.d [new file with mode: 0644]
gas/testsuite/gas/arm/missing.l [new file with mode: 0644]
gas/testsuite/gas/arm/missing.s [new file with mode: 0644]

index 62c8a61..58564c6 100644 (file)
@@ -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.
index 1fe7f4c..b843b62 100644 (file)
@@ -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;
     }
 
index 4ab5e72..29b04dd 100644 (file)
@@ -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 (file)
index 0000000..6a0cbf2
--- /dev/null
@@ -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 (file)
index 0000000..d6e5965
--- /dev/null
@@ -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 (file)
index 0000000..c3e2935
--- /dev/null
@@ -0,0 +1,2 @@
+       bl
+       blx