This is the mail archive of the binutils-cvs@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]

[binutils-gdb] Use temp_ilp and restore_ilp in more places


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=af60449c260235478f9b1f9db39a587fe4c75290

commit af60449c260235478f9b1f9db39a587fe4c75290
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Mar 18 22:34:36 2019 +1030

    Use temp_ilp and restore_ilp in more places
    
    	* as.c (macro_expr): Use temp_ilp and restore_ilp.
    	* macro.c (buffer_and_nest): Likewise.
    	* read.c (temp_ilp): Remove FIXME.

Diff:
---
 gas/ChangeLog | 3 +++
 gas/as.c      | 6 ++----
 gas/macro.c   | 5 ++---
 gas/read.c    | 5 +----
 4 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index dbfde1e..bbd4a9c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,6 +1,9 @@
 2019-03-18  Alan Modra  <amodra@gmail.com>
 
 	* config/m68k-parse.y (yylex): Use temp_ilp and restore_ilp.
+	* as.c (macro_expr): Likewise.
+	* macro.c (buffer_and_nest): Likewise.
+	* read.c (temp_ilp): Remove FIXME.
 
 2019-03-18  H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/gas/as.c b/gas/as.c
index 728811b..c7bdf0c 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -1102,16 +1102,14 @@ close_output_file (void)
 static size_t
 macro_expr (const char *emsg, size_t idx, sb *in, offsetT *val)
 {
-  char *hold;
   expressionS ex;
 
   sb_terminate (in);
 
-  hold = input_line_pointer;
-  input_line_pointer = in->ptr + idx;
+  temp_ilp (in->ptr + idx);
   expression_and_evaluate (&ex);
   idx = input_line_pointer - in->ptr;
-  input_line_pointer = hold;
+  restore_ilp ();
 
   if (ex.X_op != O_constant)
     as_bad ("%s", emsg);
diff --git a/gas/macro.c b/gas/macro.c
index 5f41c13..b79d922 100644
--- a/gas/macro.c
+++ b/gas/macro.c
@@ -223,14 +223,13 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
 	     anyway, there's not an obviously better fix here.  */
 	  if (strncasecmp (ptr->ptr + i, "linefile", 8) == 0)
 	    {
-	      char *saved_input_line_pointer = input_line_pointer;
 	      char saved_eol_char = ptr->ptr[ptr->len];
 
 	      ptr->ptr[ptr->len] = '\0';
-	      input_line_pointer = ptr->ptr + i + 8;
+	      temp_ilp (ptr->ptr + i + 8);
 	      s_app_line (0);
+	      restore_ilp ();
 	      ptr->ptr[ptr->len] = saved_eol_char;
-	      input_line_pointer = saved_input_line_pointer;
 	      ptr->len = line_start;
 	    }
 	}
diff --git a/gas/read.c b/gas/read.c
index 228fe7a..ac0048d 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -6213,10 +6213,7 @@ static char *saved_limit;
    overruns should not occur.  Saves the current input line pointer so that
    it can be restored by calling restore_ilp().
 
-   Does not support recursion.
-
-   FIXME: This function is currently only used by stabs.c but that
-   should be extended to other files in the gas source directory.  */
+   Does not support recursion.  */
 
 void
 temp_ilp (char *buf)


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