diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-02-17 01:19:34 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-10-25 13:30:02 +0100 |
commit | 8f7e21cadc21f49819d003e560d4607d720c647f (patch) | |
tree | 11a0d09c755b416950a430ce78850cf7e67ef6c8 | |
parent | cfca7b4c6cb48283cb554fc91dc859ff669f2547 (diff) | |
download | sparse-8f7e21cadc21f49819d003e560d4607d720c647f.tar.gz |
OP_CALL should use the full function type
OP_CALL keep a list with the type of the function itself
and of each of its arguments.
However, the function type added to the list is not the complete type
but its base type. So, we can't use the function's modifiers or contexts.
Fix this by storing the complete function type.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | linearize.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/linearize.c b/linearize.c index 1081bda8..24328011 100644 --- a/linearize.c +++ b/linearize.c @@ -1520,8 +1520,6 @@ static pseudo_t linearize_call_expression(struct entrypoint *ep, struct expressi } ctype = &fntype->ctype; - if (fntype->type == SYM_NODE) - fntype = fntype->ctype.base_type; add_symbol(&insn->fntypes, fntype); FOR_EACH_PTR(expr->args, arg) { |