free(abi);
}
+typedef struct decl_callinfo {
+ void *sym;
+ void *info;
+ size_t argc;
+ void **args;
+ void *rval;
+} decl_callinfo;
+
typedef struct decl {
decl_abi *abi;
decl_arg *func;
decl_args *args;
struct impl *impl;
- struct {
- void *sym;
- void *info;
- void **args;
- } call;
+ decl_callinfo call;
} decl;
static inline decl* init_decl(decl_abi *abi, decl_arg *func, decl_args *args) {
free(arg);
}
+typedef struct impl_vararg {
+ impl_arg *name;
+ struct impl_args *args;
+ token_t *types;
+ impl_val *values;
+ void **free_list;
+} impl_vararg;
+
typedef struct impl_args {
impl_arg **args;
size_t count;
- impl_arg *vararg;
+ impl_vararg vararg;
} impl_args;
static inline impl_args *init_impl_args(impl_arg *arg) {