summaryrefslogtreecommitdiff
path: root/opcodes/xtensa-dis.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-06-06 15:30:35 +0930
committerAlan Modra <amodra@gmail.com>2018-06-06 21:30:36 +0930
commitce72cd46ec611fe6440053f282b1b6cb7e977ff6 (patch)
treeba2502d4fde47944ead5885f0b43a1d730f6f162 /opcodes/xtensa-dis.c
parent773ff7907c05313aebbcd5e8319e5b869ac4f792 (diff)
Fix xtensa "clobbered by longjmp" warnings
.../opcodes/xtensa-dis.c: In function ‘print_insn_xtensa’: .../opcodes/xtensa-dis.c:257:17: error: variable ‘fmt’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered] xtensa_format fmt; ^~~ .../opcodes/xtensa-dis.c:262:26: error: variable ‘valid_insn’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered] int first, first_slot, valid_insn = 0; ^~~~~~~~~~ * xtensa-dis.c (print_insn_xtensa): Init fmt and valid_insn after setjmp. Move init for some other vars later too.
Diffstat (limited to 'opcodes/xtensa-dis.c')
-rw-r--r--opcodes/xtensa-dis.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/opcodes/xtensa-dis.c b/opcodes/xtensa-dis.c
index c11cf064ce..b156544fce 100644
--- a/opcodes/xtensa-dis.c
+++ b/opcodes/xtensa-dis.c
@@ -259,7 +259,7 @@ print_insn_xtensa (bfd_vma memaddr, struct disassemble_info *info)
static bfd_byte *byte_buf = NULL;
static xtensa_insnbuf insn_buffer = NULL;
static xtensa_insnbuf slot_buffer = NULL;
- int first, first_slot, valid_insn = 0;
+ int first, first_slot, valid_insn;
property_table_entry *insn_block;
if (!xtensa_default_isa)
@@ -338,16 +338,17 @@ print_insn_xtensa (bfd_vma memaddr, struct disassemble_info *info)
/* Error return. */
return -1;
- /* Don't set "isa" before the setjmp to keep the compiler from griping. */
- isa = xtensa_default_isa;
- size = 0;
- nslots = 0;
-
/* Fetch the maximum size instruction. */
bytes_fetched = fetch_data (info, memaddr);
insn_block = xtensa_find_table_entry (memaddr, info);
+ /* Don't set "isa" before the setjmp to keep the compiler from griping. */
+ isa = xtensa_default_isa;
+ size = 0;
+ nslots = 0;
+ valid_insn = 0;
+ fmt = 0;
if (!insn_block || (insn_block->flags & XTENSA_PROP_INSN))
{
/* Copy the bytes into the decode buffer. */