gas/
authorJan Beulich <jbeulich@novell.com>
Wed, 28 Sep 2005 14:51:02 +0000 (14:51 +0000)
committerJan Beulich <jbeulich@novell.com>
Wed, 28 Sep 2005 14:51:02 +0000 (14:51 +0000)
2005-09-28  Jan Beulich  <jbeulich@novell.com>

* dw2gencfi.c (dot_cfi): Call ignore_rest_of_line when not fully
parsing the input.
(dot_cfi_startproc): Likewise.
(dot_cfi_endproc): Likewise. Also check no extra input was given.
(dot_cfi_escape): Likewise.

gas/ChangeLog
gas/dw2gencfi.c

index b513b57..91d515f 100644 (file)
@@ -1,5 +1,13 @@
 2005-09-28  Jan Beulich  <jbeulich@novell.com>
 
+       * dw2gencfi.c (dot_cfi): Call ignore_rest_of_line when not fully
+       parsing the input.
+       (dot_cfi_startproc): Likewise.
+       (dot_cfi_endproc): Likewise. Also check no extra input was given.
+       (dot_cfi_escape): Likewise.
+
+2005-09-28  Jan Beulich  <jbeulich@novell.com>
+
        * config/tc-i386.h (x86_cons_fix_new): Declare unconditionally.
        (TC_CONS_FIX_NEW): Define unconditionally.
        (x86_pe_cons_fix_new): Remove.
index d54e233..65be298 100644 (file)
@@ -447,6 +447,7 @@ dot_cfi (int arg)
   if (!cur_fde_data)
     {
       as_bad (_("CFI instruction used without previous .cfi_startproc"));
+      ignore_rest_of_line ();
       return;
     }
 
@@ -548,6 +549,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
   if (!cur_fde_data)
     {
       as_bad (_("CFI instruction used without previous .cfi_startproc"));
+      ignore_rest_of_line ();
       return;
     }
 
@@ -570,6 +572,9 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
   insn = alloc_cfi_insn_data ();
   insn->insn = CFI_escape;
   insn->u.esc = head;
+
+  --input_line_pointer;
+  demand_empty_rest_of_line ();
 }
 
 static void
@@ -580,6 +585,7 @@ dot_cfi_startproc (int ignored ATTRIBUTE_UNUSED)
   if (cur_fde_data)
     {
       as_bad (_("previous CFI entry not closed (missing .cfi_endproc)"));
+      ignore_rest_of_line ();
       return;
     }
 
@@ -614,10 +620,13 @@ dot_cfi_endproc (int ignored ATTRIBUTE_UNUSED)
   if (! cur_fde_data)
     {
       as_bad (_(".cfi_endproc without corresponding .cfi_startproc"));
+      ignore_rest_of_line ();
       return;
     }
 
   cfi_end_fde (symbol_temp_new_now ());
+
+  demand_empty_rest_of_line ();
 }
 
 \f