RTS, Fix invalid struct names in type info

This commit is contained in:
Krzosa Karol
2023-04-19 08:09:59 +02:00
parent 56eb7e6de2
commit 597cee5fb8
4 changed files with 38 additions and 17 deletions

View File

@@ -41,13 +41,12 @@ gen_last_line() {
}
}
global String prefixed_string_type;
CORE_Static const char *
get_ctype_name_for_type(Ast_Type *type) {
switch (type->kind) {
case TYPE_VOID: return "void";
case TYPE_BOOL: return "bool";
case TYPE_STRING: return (char *)prefixed_string_type.str;
case TYPE_STRING: return "String";
case TYPE_F32: return "float";
case TYPE_F64: return "double";
@@ -816,7 +815,6 @@ CORE_Static String
compile_to_c_code() {
pctx->time.code_generation = os_time();
prefixed_string_type = string_fmt(pctx->perm, "String");
if (pctx->single_header_library_mode) {
gen(R"(
/*
@@ -993,7 +991,7 @@ compile_to_c_code() {
genln(".struct_members.data = (Type_Info_Struct_Member[%d]){", t->agg.members.len);
global_indent += 1;
For2(t->agg.members, m) {
genln("{.name = {(uint8_t *)\"%Q\", %d}, .type = %d, .offset = %d}, ", prefixed_string_type, m.name, m.name.len, m.type->type_id, m.offset);
genln("{.name = {(uint8_t *)\"%Q\", %d}, .type = %d, .offset = %d}, ", m.name, m.name.len, m.type->type_id, m.offset);
}
global_indent -= 1;
genln("}");