diff -r 13d0b67de111 -r 06820d03a433 stage4/generate_c/generate_c_st.cc --- a/stage4/generate_c/generate_c_st.cc Sun Dec 22 09:50:02 2013 +0000 +++ b/stage4/generate_c/generate_c_st.cc Mon Jan 06 12:25:21 2014 +0000 @@ -76,10 +76,11 @@ * so we do not create an object instance when handling * a function declaration. */ - search_fb_instance_decl_c *search_fb_instance_decl; - + search_fb_instance_decl_c *search_fb_instance_decl; search_varfb_instance_type_c *search_varfb_instance_type; search_var_instance_decl_c *search_var_instance_decl; + + symbol_c *scope_; symbol_c* current_array_type; symbol_c* current_param_type; @@ -98,6 +99,7 @@ search_fb_instance_decl = new search_fb_instance_decl_c (scope); search_varfb_instance_type = new search_varfb_instance_type_c(scope); search_var_instance_decl = new search_var_instance_decl_c (scope); + scope_ = scope; this->set_variable_prefix(variable_prefix); current_array_type = NULL; @@ -128,7 +130,7 @@ void *print_getter(symbol_c *symbol) { - unsigned int vartype = search_var_instance_decl->get_vartype(symbol); + unsigned int vartype = analyse_variable_c::first_nonfb_vardecltype(symbol, scope_); if (wanted_variablegeneration == fparam_output_vg) { if (vartype == search_var_instance_decl_c::external_vt) { if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; @@ -178,7 +180,7 @@ bool type_is_complex = false; if (fb_symbol == NULL) { - unsigned int vartype = search_var_instance_decl->get_vartype(symbol); + unsigned int vartype = analyse_variable_c::first_nonfb_vardecltype(symbol, scope_); type_is_complex = analyse_variable_c::contains_complex_type(symbol); if (vartype == search_var_instance_decl_c::external_vt) { if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR;