aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-02-17 01:19:34 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-10-25 13:30:02 +0100
commit8f7e21cadc21f49819d003e560d4607d720c647f (patch)
tree11a0d09c755b416950a430ce78850cf7e67ef6c8
parentcfca7b4c6cb48283cb554fc91dc859ff669f2547 (diff)
downloadsparse-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.c2
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) {