(operand): Do not as_bad() if RELAX_PAREN_GROUPING is
authorAlan Modra <amodra@gmail.com>
Fri, 23 Jun 2000 10:12:48 +0000 (10:12 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 23 Jun 2000 10:12:48 +0000 (10:12 +0000)
defined.  Fix error message and double increment of
input_line_pointer for `[' grouping.

gas/ChangeLog
gas/expr.c

index d463a9a..cd13e01 100644 (file)
@@ -1,3 +1,9 @@
+2000-06-23  matthew green  <mrg@redhat.com>
+
+       * expr.c (operand): Do not as_bad() if RELAX_PAREN_GROUPING is
+        defined.  Fix error message and double increment of
+       input_line_pointer for `[' grouping.
+
 2000-06-22  Kazu Hirata  <kazu@hxi.com>
 
        * config/tc-h8300.c: Fix formatting and comment typos.
index e12c4b0..d082469 100644 (file)
@@ -1004,12 +1004,16 @@ operand (expressionP)
       /* didn't begin with digit & not a name */
       segment = expression (expressionP);
       /* Expression() will pass trailing whitespace */
-      if ((c == '(' && *input_line_pointer++ != ')')
-         || (c == '[' && *input_line_pointer++ != ']'))
+      if ((c == '(' && *input_line_pointer != ')')
+         || (c == '[' && *input_line_pointer != ']'))
        {
-         as_bad (_("Missing ')' assumed"));
-         input_line_pointer--;
+#ifdef RELAX_PAREN_GROUPING
+         if (c != '(')
+#endif
+           as_bad (_("Missing '%c' assumed"), c == '(' ? ')' : ']');
        }
+      else
+        input_line_pointer++;
       SKIP_WHITESPACE ();
       /* here with input_line_pointer->char after "(...)" */
       return segment;