]> granicus.if.org Git - yasm/commitdiff
x86_bc_resolve_insn(): If x86_expr_checkea fails, return not only
authorPeter Johnson <peter@tortall.net>
Thu, 3 Oct 2002 19:02:53 +0000 (19:02 -0000)
committerPeter Johnson <peter@tortall.net>
Thu, 3 Oct 2002 19:02:53 +0000 (19:02 -0000)
BC_RESOLVE_UNKNOWN_LEN but also BC_RESOLVE_ERROR so that a spurious circular
reference detected is not output from the basic optimizer.

svn path=/trunk/yasm/; revision=732

modules/arch/x86/x86bc.c
src/arch/x86/x86bc.c

index 33089ea6ab08032c96b31daeaec51d0042b95316..f5dc6a4b3356e1bdbe0124ec01a002d81e89d6af 100644 (file)
@@ -475,7 +475,7 @@ x86_bc_resolve_insn(x86_insn *insn, unsigned long *len, int save,
                                  &ead_t.need_sib, calc_bc_dist)) {
                expr_delete(temp);
                /* failed, don't bother checking rest of insn */
-               return BC_RESOLVE_UNKNOWN_LEN;
+               return BC_RESOLVE_UNKNOWN_LEN|BC_RESOLVE_ERROR;
            }
 
            expr_delete(temp);
index 33089ea6ab08032c96b31daeaec51d0042b95316..f5dc6a4b3356e1bdbe0124ec01a002d81e89d6af 100644 (file)
@@ -475,7 +475,7 @@ x86_bc_resolve_insn(x86_insn *insn, unsigned long *len, int save,
                                  &ead_t.need_sib, calc_bc_dist)) {
                expr_delete(temp);
                /* failed, don't bother checking rest of insn */
-               return BC_RESOLVE_UNKNOWN_LEN;
+               return BC_RESOLVE_UNKNOWN_LEN|BC_RESOLVE_ERROR;
            }
 
            expr_delete(temp);