diff -r 818c4ac5d64d -r 13d0b67de111 stage4/generate_c/generate_c_il.cc --- a/stage4/generate_c/generate_c_il.cc Fri Dec 20 11:44:38 2013 +0000 +++ b/stage4/generate_c/generate_c_il.cc Sun Dec 22 09:50:02 2013 +0000 @@ -367,7 +367,8 @@ unsigned int vartype = search_var_instance_decl->get_vartype(symbol); if (wanted_variablegeneration == fparam_output_vg) { if (vartype == search_var_instance_decl_c::external_vt) { - if (search_var_instance_decl->type_is_fb(symbol)) + if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; + if ( get_datatype_info_c::is_function_block(symbol->datatype)) s4o.print(GET_EXTERNAL_FB_BY_REF); else s4o.print(GET_EXTERNAL_BY_REF); @@ -379,7 +380,8 @@ } else { if (vartype == search_var_instance_decl_c::external_vt) { - if (search_var_instance_decl->type_is_fb(symbol)) + if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; + if ( get_datatype_info_c::is_function_block(symbol->datatype)) s4o.print(GET_EXTERNAL_FB); else s4o.print(GET_EXTERNAL); @@ -414,7 +416,8 @@ unsigned int vartype = search_var_instance_decl->get_vartype(symbol); type_is_complex = analyse_variable_c::contains_complex_type(symbol); if (vartype == search_var_instance_decl_c::external_vt) { - if (search_var_instance_decl->type_is_fb(symbol)) + if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; + if ( get_datatype_info_c::is_function_block(symbol->datatype)) s4o.print(SET_EXTERNAL_FB); else s4o.print(SET_EXTERNAL); @@ -572,7 +575,7 @@ // SYM_REF2(structured_variable_c, record_variable, field_selector) void *visit(structured_variable_c *symbol) { TRACE("structured_variable_c"); - bool type_is_complex = search_var_instance_decl->type_is_complex(symbol->record_variable); + bool type_is_complex = analyse_variable_c::is_complex_type(symbol->record_variable); switch (wanted_variablegeneration) { case complextype_base_vg: case complextype_base_assignment_vg: