Upon decode failure set the guest_IA to the address of the insn that
could not be decoded (current insn). Otherwise, a wrong address will be
reported in the complaint.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2450 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/guest_s390_toIR.c b/priv/guest_s390_toIR.c
index a4a0562..9c15864 100644
--- a/priv/guest_s390_toIR.c
+++ b/priv/guest_s390_toIR.c
@@ -13809,8 +13809,11 @@
/* All decode failures end up here. The decoder has already issued an
error message.
Tell the dispatcher that this insn cannot be decoded, and so has
- not been executed, and (is currently) the next to be executed. */
- put_IA(mkaddr_expr(guest_IA_next_instr));
+ not been executed, and (is currently) the next to be executed.
+ The insn address in the guest state needs to be set to
+ guest_IA_curr_instr, otherwise the complaint will report an
+ incorrect address. */
+ put_IA(mkaddr_expr(guest_IA_curr_instr));
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;