* read.c (read_a_source_file): Use demand_empty_rest_of_line.
authorNathan Sidwell <nathan@codesourcery.com>
Thu, 18 Mar 2004 13:31:04 +0000 (13:31 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Thu, 18 Mar 2004 13:31:04 +0000 (13:31 +0000)
(demand_empty_rest_of_line): Issue an error here.
(ignore_rest_of_line): Silently skip to end.
(demand_copy_string): Issue an error, not warning.
(equals): Likewise.
* config/obj-elf.c (obj_elf_section_name): Likewise.
(obj_elf_section): Likewise.
* config/tc-arc.c (arc_extoper): Remove bogus NULL checks.
(arc_extinst): Likewise.
* config/tc-ia64.c (dot_saveb): Use demand_empty_rest_of_line.
(dot_spill): Likewise.
(dot_unwabi): Likewise.
(dot_prologue): Likewise.

gas/ChangeLog
gas/config/obj-elf.c
gas/config/tc-arc.c
gas/config/tc-ia64.c
gas/read.c

index 3f08a95eb08d41f56451c0b6b1f5088ba19fd65b..f9e999e544465e5a577921507524f23f42cd07b7 100644 (file)
@@ -1,5 +1,19 @@
 2004-03-18  Nathan Sidwell  <nathan@codesourcery.com>
 
+       * read.c (read_a_source_file): Use demand_empty_rest_of_line.
+       (demand_empty_rest_of_line): Issue an error here.
+       (ignore_rest_of_line): Silently skip to end.
+       (demand_copy_string): Issue an error, not warning.
+       (equals): Likewise.
+       * config/obj-elf.c (obj_elf_section_name): Likewise.
+       (obj_elf_section): Likewise.
+       * config/tc-arc.c (arc_extoper): Remove bogus NULL checks.
+       (arc_extinst): Likewise.
+       * config/tc-ia64.c (dot_saveb): Use demand_empty_rest_of_line.
+       (dot_spill): Likewise.
+       (dot_unwabi): Likewise.
+       (dot_prologue): Likewise.
+
        * expr.c (operand): Reject ++ and --.
        (operator): Likewise.
 
index 01ba0962442bba029db9017050ee01291b38f060..14d48f2ee74d1e8bbae113220c70eeb2b9d78153 100644 (file)
@@ -787,7 +787,7 @@ obj_elf_section_name (void)
        end++;
       if (end == input_line_pointer)
        {
-         as_warn (_("missing name"));
+         as_bad (_("missing name"));
          ignore_rest_of_line ();
          return NULL;
        }
@@ -938,7 +938,7 @@ obj_elf_section (int push)
              SKIP_WHITESPACE ();
              if (*input_line_pointer != '#')
                {
-                 as_warn (_("character following name is not '#'"));
+                 as_bad (_("character following name is not '#'"));
                  ignore_rest_of_line ();
                  return;
                }
index b99fc0b8f72e58988a394fd41e5e9798e36486c0..60cfa34652ade38d23d451dcb94cad786b22bb27 100644 (file)
@@ -905,11 +905,6 @@ arc_extoper (opertype)
   name = input_line_pointer;
   c = get_symbol_end ();
   name = xstrdup (name);
-  if (NULL == name)
-    {
-      ignore_rest_of_line ();
-      return;
-    }
 
   p = name;
   while (*p)
@@ -1153,11 +1148,6 @@ arc_extinst (ignore)
   name = input_line_pointer;
   c = get_symbol_end ();
   name = xstrdup (name);
-  if (NULL == name)
-    {
-      ignore_rest_of_line ();
-      return;
-    }
   strcpy (syntax, name);
   name_len = strlen (name);
 
@@ -1305,18 +1295,7 @@ arc_extinst (ignore)
   strcat (syntax, "%S%L");
 
   ext_op = (struct arc_opcode *) xmalloc (sizeof (struct arc_opcode));
-  if (NULL == ext_op)
-    {
-      ignore_rest_of_line ();
-      return;
-    }
-
   ext_op->syntax = xstrdup (syntax);
-  if (NULL == ext_op->syntax)
-    {
-      ignore_rest_of_line ();
-      return;
-    }
 
   ext_op->mask  = I (-1) | ((0x3 == opcode) ? C (-1) : 0);
   ext_op->value = I (opcode) | ((0x3 == opcode) ? C (subopcode) : 0);
index 6c4519e30016d884912054fada5d27d701ae795f..f5526c9801025196731c144e45541e4e7a493246 100644 (file)
@@ -3617,7 +3617,7 @@ dot_saveb (dummy)
     add_unwind_entry (output_br_mem (brmask));
 
   if (!is_end_of_line[sep] && !is_it_end_of_statement ())
-    ignore_rest_of_line ();
+    demand_empty_rest_of_line ();
 }
 
 static void
@@ -3649,7 +3649,7 @@ dot_spill (dummy)
 
   sep = parse_operand (&e);
   if (!is_end_of_line[sep] && !is_it_end_of_statement ())
-    ignore_rest_of_line ();
+    demand_empty_rest_of_line ();
 
   if (e.X_op != O_constant)
     as_bad ("Operand to .spill must be a constant");
@@ -3925,7 +3925,7 @@ dot_unwabi (dummy)
     }
   sep = parse_operand (&e2);
   if (!is_end_of_line[sep] && !is_it_end_of_statement ())
-    ignore_rest_of_line ();
+    demand_empty_rest_of_line ();
 
   if (e1.X_op != O_constant)
     {
@@ -4020,7 +4020,7 @@ dot_prologue (dummy)
        as_bad ("No second operand to .prologue");
       sep = parse_operand (&e2);
       if (!is_end_of_line[sep] && !is_it_end_of_statement ())
-       ignore_rest_of_line ();
+       demand_empty_rest_of_line ();
 
       if (e1.X_op == O_constant)
        {
index f50409ccebee1263a754ea2c0700dfeceff2e33d..430a67e3c5d4146cd06d05fd27f91bce6db6d1d9 100644 (file)
@@ -1053,7 +1053,7 @@ read_a_source_file (char *name)
 #endif
          input_line_pointer--;
          /* Report unknown char as ignored.  */
-         ignore_rest_of_line ();
+         demand_empty_rest_of_line ();
        }
 
 #ifdef md_after_pass_hook
@@ -3020,6 +3020,10 @@ s_text (int ignore ATTRIBUTE_UNUSED)
 #endif
 }
 \f
+
+/* Verify that we are at the end of a line.  If not, issue an error and
+   skip to EOL.  */
+
 void
 demand_empty_rest_of_line (void)
 {
@@ -3027,28 +3031,29 @@ demand_empty_rest_of_line (void)
   if (is_end_of_line[(unsigned char) *input_line_pointer])
     input_line_pointer++;
   else
-    ignore_rest_of_line ();
-
-  /* Return having already swallowed end-of-line.  */
-}
-
-void
-ignore_rest_of_line (void)
-{
-  /* For suspect lines: gives warning.  */
-  if (!is_end_of_line[(unsigned char) *input_line_pointer])
     {
       if (ISPRINT (*input_line_pointer))
-       as_warn (_("rest of line ignored; first ignored character is `%c'"),
+       as_bad (_("junk at end of line, first unrecognized character is `%c'"),
                 *input_line_pointer);
       else
-       as_warn (_("rest of line ignored; first ignored character valued 0x%x"),
+       as_bad (_("junk at end of line, first unrecognized character valued 0x%x"),
                 *input_line_pointer);
-
-      while (input_line_pointer < buffer_limit
-            && !is_end_of_line[(unsigned char) *input_line_pointer])
-       input_line_pointer++;
+      ignore_rest_of_line ();
     }
+  
+  /* Return pointing just after end-of-line.  */
+  know (is_end_of_line[(unsigned char) input_line_pointer[-1]]);
+}
+
+/* Silently advance to the end of line.  Use this after already having
+   issued an error about something bad.  */
+
+void
+ignore_rest_of_line (void)
+{
+  while (input_line_pointer < buffer_limit
+        && !is_end_of_line[(unsigned char) *input_line_pointer])
+    input_line_pointer++;
 
   input_line_pointer++;
 
@@ -4738,7 +4743,7 @@ demand_copy_string (int *lenP)
     }
   else
     {
-      as_warn (_("missing string"));
+      as_bad (_("missing string"));
       retval = NULL;
       ignore_rest_of_line ();
     }
@@ -4814,7 +4819,7 @@ equals (char *sym_name, int reassign)
   if (flag_mri)
     {
       /* Check garbage after the expression.  */
-      ignore_rest_of_line ();
+      demand_empty_rest_of_line ();
       mri_comment_end (stop, stopc);
     }
 }