+ if( ! got_type)
+ goto type_check_error;
+
+ if(fa->atype->pointer == NULL ||
+ (strcmp(fa->atype->pointer, "*") != 0 &&
+ strcmp(fa->atype->pointer, "* const") != 0 &&
+ strcmp(fa->atype->pointer, "const *") != 0))
+ goto type_check_error;
+ }
+ }
+ return;
+
+type_check_error:
+ if(fa->atype->pointer)
+ error_printf(GOB_ERROR, m->line_no,
+ "Cannot check the type of '%s %s'",
+ fa->atype->name, fa->atype->pointer);
+ else
+ error_printf(GOB_ERROR, m->line_no,
+ "Cannot check the type of '%s'",
+ fa->atype->name);
+}
+
+static void
+check_func_arg_check_method(Method *m)
+{
+ GList *li;
+ for(li = m->args; li; li = g_list_next(li)) {
+ FuncArg *fa = li->data;
+ check_func_arg_check_func_arg(m, fa);
+ }
+}
+
+void
+check_func_arg_checks(Class *c)
+{
+ GList *li;
+ for(li = c->nodes; li != NULL; li = g_list_next(li)) {
+ Node *n = li->data;
+ if(n->type == METHOD_NODE) {
+ Method *m = (Method *)n;
+ check_func_arg_check_method(m);