static void write_type(type_t *type) { type = skip_typeref(type); switch(type->kind) { case TYPE_ATOMIC: write_atomic_type(&type->atomic); return; case TYPE_POINTER: write_pointer_type(&type->pointer); return; case TYPE_COMPOUND_UNION: case TYPE_COMPOUND_STRUCT: write_compound_type(&type->compound); return; case TYPE_ENUM: write_enum_type(&type->enumt); return; case TYPE_VOID: fputs("void", out); return; case TYPE_ERROR: case TYPE_TYPEOF: case TYPE_TYPEDEF: case TYPE_BUILTIN_TEMPLATE: panic("invalid type"); case TYPE_ARRAY: case TYPE_REFERENCE: case TYPE_FUNCTION: case TYPE_COMPLEX: case TYPE_IMAGINARY: fprintf(out, "/* TODO type */Pointer"); break; } }
static void write_type(const type_t *type) { switch(type->kind) { case TYPE_ATOMIC: write_atomic_type(&type->atomic); return; case TYPE_POINTER: write_pointer_type(&type->pointer); return; case TYPE_COMPOUND_UNION: case TYPE_COMPOUND_STRUCT: write_compound_type(&type->compound); return; case TYPE_ENUM: write_enum_type(&type->enumt); return; case TYPE_FUNCTION: write_function_type(&type->function); return; case TYPE_INVALID: panic("invalid type found"); case TYPE_COMPLEX: case TYPE_IMAGINARY: default: fprintf(out, "/* TODO type */"); break; } }