aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
authorLinus Torvalds <torvalds@home.transmeta.com>2003-04-06 23:44:23 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:00:17 -0700
commit964c707a29a03b8e974371f19fd0a8a867d9d78d (patch)
tree7b60819d6b58da391cb266be89f775a96f8359b8
parent20e0646d9239ea6fa22dcd033221883c3eddddf3 (diff)
downloadsparse-dev-964c707a29a03b8e974371f19fd0a8a867d9d78d.tar.gz
Ehheh! We'd better evaluate the type of the argument declaration
list before we use it. Lazy evaluation is all good and well, but it mustn't be so lazy that it doesn't do the work it needs to do ;)
-rw-r--r--evaluate.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/evaluate.c b/evaluate.c
index 0a803f18..259530e7 100644
--- a/evaluate.c
+++ b/evaluate.c
@@ -1110,8 +1110,10 @@ static int evaluate_arguments(struct symbol *fn, struct expression_list *head)
target = argtype;
if (!target && ctype->bit_size < BITS_IN_INT)
target = &int_ctype;
- if (target)
+ if (target) {
+ examine_symbol_type(target);
compatible_assignment_types(expr, target, p, ctype);
+ }
NEXT_PTR_LIST(argument_types, argtype);
} END_FOR_EACH_PTR;