tc-i386.c s_insn and input_line_pointer

Message ID aeV-SjBgD0pJeDjD@squeak.grove.modra.org
State New
Headers
Series tc-i386.c s_insn and input_line_pointer |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply

Commit Message

Alan Modra April 20, 2026, 1:15 a.m. UTC
  A comment in check_Scc_OszcOperations says:
      /* No need to save/restore input_line_pointer; that's done in the
	 caller already.  */
That isn't true always.  Fix a case where input_line_pointer is not
restored and ignore_rest_of_line() accesses a wild pointer.

	* gas/config/tc-i386.c (s_insn <bad>): Restore input_line_pointer.
  

Patch

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 5ce83b0ac71..988b024f0b8 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -13568,6 +13568,7 @@  s_insn (int dummy ATTRIBUTE_UNUSED)
     {
   bad:
       *saved_ilp = saved_char;
+      input_line_pointer = saved_ilp;
       ignore_rest_of_line ();
       i.tm.mnem_off = 0;
       memset (&pp, 0, sizeof (pp));