* here
*/
typedef enum custom_abbrevs {
- abbrev_void_subprogram,
+ abbrev_void_subprogram = 1,
abbrev_subprogram,
abbrev_formal_parameter,
abbrev_unnamed_formal_parameter,
ir_type *element_type = get_array_element_type(type);
if (get_array_n_dimensions(type) != 1)
- panic("dwarf: multidimensional arrays no supported yet");
+ panic("multidimensional arrays no supported yet");
emit_type(element_type);
static void emit_type(ir_type *type)
{
- if (pset_new_insert(&env.emitted_types, type))
+ if (!pset_new_insert(&env.emitted_types, type))
return;
switch (get_type_tpop_code(type)) {
case tpo_union: emit_compound_type(type); break;
case tpo_method: emit_subroutine_type(type); break;
default:
- panic("bedwarf: type %+F not implemented yet", type);
+ panic("type %+F not implemented yet", type);
}
}
emit_label("info_section_begin");
emit_label("info_begin");
+ const backend_params *be_params = be_get_backend_param();
+
/* length of compilation unit info */
emit_size("compile_unit_begin", "compile_unit_end");
emit_label("compile_unit_begin");
emit_int16(3); /* dwarf version */
emit_address("abbrev_begin");
- emit_int8(4); /* pointer size, TODO: query backend */
+ emit_int8(be_params->machine_size / 8); /* pointer size */
/* compile_unit die */
emit_uleb128(abbrev_compile_unit);
emit_address("line_section_begin");
emit_string_printf("libFirm (%u.%u %s)", ir_get_version_major(),
- ir_get_version_minor(),
- ir_get_version_revision());
+ ir_get_version_minor(), ir_get_version_revision());
emit_string(filename);
if (language != 0)
emit_int16(language);