diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-01-25 00:31:08 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-09-26 18:11:00 +0200 |
commit | e6d4cd7933a006aa71e8aa265e3c2c40ca9030d3 (patch) | |
tree | 7ac1a4cb37101778c04ccba3e05a3ecc46680399 | |
parent | 233e61d2cfe5fbdaf6de482afebc483ac196f353 (diff) | |
download | sparse-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.c | 6 |
1 files changed, 1 insertions, 5 deletions
@@ -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) |