public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] Revert "segfault at i386-dis.c:9815"
@ 2023-03-20 10:33 Alan Modra
  0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2023-03-20 10:33 UTC (permalink / raw)
  To: bfd-cvs

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

commit 834e4d716226b4536bfeb4d20023c69c139eeb5a
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Mar 20 20:56:57 2023 +1030

    Revert "segfault at i386-dis.c:9815"
    
    This reverts commit 92d450c79ad321e42f9a77692b5db10d0f7b9344.
    
    Accessing these local var structs using a volatile qualified pointer
    may indeed read the object, but I don't think changed values are
    guaranteed to be written back to the object unless the actual object
    is declared volatile.  That would probably slow down i386 disassembly
    unacceptably.

Diff:
---
 opcodes/i386-dis.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 9684dcda746..a414e8c9b1e 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -9808,17 +9808,12 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       /* Getting here means we tried for data but didn't get it.  That
 	 means we have an incomplete instruction of some sort.  Just
 	 print the first byte as a prefix or a .byte pseudo-op.  */
-      volatile struct dis_private *ppriv = &priv;
-      volatile instr_info *pins = &ins;
-      if (pins->codep > ppriv->the_buffer)
+      if (ins.codep > priv.the_buffer)
 	{
 	  const char *name = NULL;
 
-	  if (pins->prefixes
-	      || pins->fwait_prefix >= 0
-	      || (pins->rex & REX_OPCODE))
-	    name = prefix_name (&ins, ppriv->the_buffer[0],
-				ppriv->orig_sizeflag);
+	  if (ins.prefixes || ins.fwait_prefix >= 0 || (ins.rex & REX_OPCODE))
+	    name = prefix_name (&ins, priv.the_buffer[0], priv.orig_sizeflag);
 	  if (name != NULL)
 	    i386_dis_printf (&ins, dis_style_mnemonic, "%s", name);
 	  else
@@ -9827,7 +9822,7 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 	      i386_dis_printf (&ins, dis_style_assembler_directive,
 			       ".byte ");
 	      i386_dis_printf (&ins, dis_style_immediate, "0x%x",
-			       (unsigned int) ppriv->the_buffer[0]);
+			       (unsigned int) priv.the_buffer[0]);
 	    }
 
 	  return 1;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-03-20 10:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-20 10:33 [binutils-gdb] Revert "segfault at i386-dis.c:9815" Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).