diff -r b08167f156a1 -r 268bf4ca5fa1 stage4/generate_c/generate_c_typedecl.cc --- a/stage4/generate_c/generate_c_typedecl.cc Thu Jan 03 17:04:04 2013 +0000 +++ b/stage4/generate_c/generate_c_typedecl.cc Thu Jan 03 18:23:07 2013 +0000 @@ -98,6 +98,9 @@ return NULL; } + bool type_is_fb(symbol_c* type_decl) { + return search_base_type_c::type_is_fb(type_decl); + } /***************************/ /* B 0 - Programming Model */ @@ -345,19 +348,19 @@ current_basetypedeclaration = none_bd; if (array_is_derived) - s4o_incl.print("__DECLARE_DERIVED_TYPE("); + s4o_incl.print("__DECLARE_DERIVED_TYPE("); else - s4o_incl.print("__DECLARE_ARRAY_TYPE("); + s4o_incl.print("__DECLARE_ARRAY_TYPE("); current_type_name->accept(*basedecl); s4o_incl.print(","); current_basetypedeclaration = arraybasetypeincl_bd; symbol->array_spec_init->accept(*this); current_basetypedeclaration = none_bd; if (!array_is_derived) { - s4o_incl.print(","); - current_basetypedeclaration = arraysubrange_bd; - symbol->array_spec_init->accept(*this); - current_basetypedeclaration = none_bd; + s4o_incl.print(","); + current_basetypedeclaration = arraysubrange_bd; + symbol->array_spec_init->accept(*this); + current_basetypedeclaration = none_bd; } s4o_incl.print(")\n"); @@ -374,19 +377,19 @@ if (current_typedefinition == array_td) { switch (current_basetypedeclaration) { - case arrayderiveddeclaration_bd: - array_is_derived = dynamic_cast(symbol->array_specification) != NULL; - break; - default: - if (array_is_derived) - symbol->array_specification->accept(*basedecl); - else - symbol->array_specification->accept(*this); - break; + case arrayderiveddeclaration_bd: + array_is_derived = dynamic_cast(symbol->array_specification) != NULL; + break; + default: + if (array_is_derived) + symbol->array_specification->accept(*basedecl); + else + symbol->array_specification->accept(*this); + break; } } else { - symbol->array_specification->accept(*basedecl); + symbol->array_specification->accept(*basedecl); } return NULL; } @@ -441,11 +444,11 @@ s4o_incl.print(")\n"); if (search_base_type_c::type_is_subrange(symbol->simple_type_name)) { - s4o.print("#define __CHECK_"); - current_type_name->accept(*this); - s4o.print(" __CHECK_"); - symbol->simple_spec_init->accept(*this); - s4o.print("\n"); + s4o.print("#define __CHECK_"); + current_type_name->accept(*this); + s4o.print(" __CHECK_"); + symbol->simple_spec_init->accept(*this); + s4o.print("\n"); } return NULL;