]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
tc-i386.c s_insn and input_line_pointer
authorAlan Modra <amodra@gmail.com>
Mon, 20 Apr 2026 00:31:17 +0000 (10:01 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 20 Apr 2026 01:13:53 +0000 (10:43 +0930)
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.

gas/config/tc-i386.c

index 5ce83b0ac712128868b044b7623e0cdadb3629d2..988b024f0b883399697f163f08c5951ae8b9788d 100644 (file)
@@ -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));