summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-01-25 00:31:08 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-09-26 18:11:00 +0200
commite6d4cd7933a006aa71e8aa265e3c2c40ca9030d3 (patch)
tree7ac1a4cb37101778c04ccba3e05a3ecc46680399
parent233e61d2cfe5fbdaf6de482afebc483ac196f353 (diff)
downloadsparse-e6d4cd7933a006aa71e8aa265e3c2c40ca9030d3.tar.gz
dissect: fix processing of ASM statements
Before commit 756731e9 ("use a specific struct for asm operands"), ASM operands ('name', 'constraint, 'expression') were stored as a sequence of 3 expressions. After, they had their own expression type: EXPR_ASM_OPERAND. However, dissect.c:do_asm_xputs() was not adapated for this change. Fix this in do_asm_xputs() by processing the 'expression' of every entries (instead of only processing every third entries). CC: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--dissect.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/dissect.c b/dissect.c
index 5f067eb4..b50c268b 100644
--- a/dissect.c
+++ b/dissect.c
@@ -452,11 +452,7 @@ again:
static void do_asm_xputs(usage_t mode, struct expression_list *xputs)
{
- int nr = 0;
-
- DO_LIST(xputs, expr,
- if (++nr % 3 == 0)
- do_expression(U_W_AOF | mode, expr));
+ DO_LIST(xputs, op, do_expression(U_W_AOF | mode, op->expr));
}
static struct symbol *do_statement(usage_t mode, struct statement *stmt)