aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/evaluate.h
diff options
context:
space:
mode:
Diffstat (limited to 'evaluate.h')
-rw-r--r--evaluate.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/evaluate.h b/evaluate.h
index a16e9703..3dbce29f 100644
--- a/evaluate.h
+++ b/evaluate.h
@@ -28,8 +28,17 @@ void evaluate_symbol_list(struct symbol_list *list);
///
// evaluate the arguments of a function
+// @fn: the symbol of the prototype
// @argtypes: the list of the types in the prototype
// @args: the list of the effective arguments
-int evaluate_arguments(struct symbol_list *argtypes, struct expression_list *args);
+int evaluate_arguments(struct symbol *fn, struct symbol_list *argtypes, struct expression_list *args);
+
+///
+// check if assignment types are compatible
+// @target: the type of the right-hand side
+// @rp: the expression corresponding to the left-hand side
+// @typediff: a pointer for details about the type difference, if any
+// @return: a non-zero value of the types are compatible, 0 otherwise
+int check_assignment_types(struct symbol *target, struct expression **rp, const char **typediff);
#endif