This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] adjust .cfi_* error handling


This eliminates odd extra error messages when CFI directives weren't
used
properly.

Built and tested on i686-pc-linux-gnu and x86_64-unknown-linux-gnu.

Jan

gas/
2005-09-13  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.

---
/home/jbeulich/src/binutils/mainline/2005-09-13/gas/dw2gencfi.c	2005-08-18
08:51:26.000000000 +0200
+++ 2005-09-13/gas/dw2gencfi.c	2005-09-05 17:26:48.000000000 +0200
@@ -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_UN
   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_UN
   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
   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_U
   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 ();
 }
 
 

Attachment: binutils-mainline-cfi-error-handling.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]