{
size_t rc = 0;
- if (a->vla)
- cdecl__emit(dst, "variable-length ");
- cdecl__emit(dst, "array ");
-
+ cdecl__emit(dst, "variable-length array " + (a->vla ? 0 : 16));
if (a->vla) {
rc = cdecl__emit(dst, a->vla);
} else {
rc = cdecl__emit_uint(dst, a->length);
}
-
cdecl__emit(dst, " of " + !rc);
}
static void
explain_function(struct output_state *dst, struct cdecl_function *f)
{
- cdecl__emit(dst, "function ");
+ int tail_offset = 7;
+ cdecl__emit(dst, "function ");
if (f->parameters) {
struct cdecl *p;
cdecl__emit(dst, ", ");
}
- if (f->variadic)
- cdecl__emit(dst, ", ...) ");
- else
- cdecl__emit(dst, ") ");
+ tail_offset = f->variadic ? 0 : 5;
}
-
- cdecl__emit(dst, "returning ");
+ cdecl__emit(dst, ", ...) returning " + tail_offset);
}
static void