conversion warnings and sanity check

This commit is contained in:
Wolfgang (Blub) Bumiller 2012-11-22 21:25:02 +01:00
parent 6ea37089fa
commit 04665a9c94

9
ir.c
View file

@ -3045,8 +3045,8 @@ static bool ir_builder_gen_field(ir_builder *self, ir_value *field)
prog_section_def def; prog_section_def def;
prog_section_field fld; prog_section_field fld;
def.type = field->vtype; def.type = (uint16_t)field->vtype;
def.offset = vec_size(code_globals); def.offset = (uint16_t)vec_size(code_globals);
/* create a global named the same as the field */ /* create a global named the same as the field */
if (opts_standard == COMPILER_GMQCC) { if (opts_standard == COMPILER_GMQCC) {
@ -3134,6 +3134,11 @@ bool ir_builder_generate(ir_builder *self, const char *filename)
} }
} }
if (vec_size(code_globals) >= 65536) {
irerror(vec_last(self->globals)->context, "This progs file would require more globals than the metadata can handle. Bailing out.");
return false;
}
/* DP errors if the last instruction is not an INSTR_DONE /* DP errors if the last instruction is not an INSTR_DONE
* and for debugging purposes we add an additional AINSTR_END * and for debugging purposes we add an additional AINSTR_END
* to the end of functions, so here it goes: * to the end of functions, so here it goes: