stage4/generate_c/generate_c_inlinefcall.cc
changeset 667 bd1360f29f15
parent 653 ea78924a1f60
parent 625 c0bda77b37a0
child 670 400bf52a2691
equal deleted inserted replaced
666:8ba9ec4bae50 667:bd1360f29f15
   399     /*************************************/
   399     /*************************************/
   400 
   400 
   401     // SYM_REF2(structured_variable_c, record_variable, field_selector)
   401     // SYM_REF2(structured_variable_c, record_variable, field_selector)
   402     void *visit(structured_variable_c *symbol) {
   402     void *visit(structured_variable_c *symbol) {
   403       TRACE("structured_variable_c");
   403       TRACE("structured_variable_c");
       
   404       bool type_is_complex = search_var_instance_decl->type_is_complex(symbol->record_variable);
   404       if (generating_inlinefunction) {
   405       if (generating_inlinefunction) {
   405         switch (wanted_variablegeneration) {
   406         switch (wanted_variablegeneration) {
   406           case complextype_base_vg:
   407           case complextype_base_vg:
   407             symbol->record_variable->accept(*this);
   408             symbol->record_variable->accept(*this);
       
   409             if (!type_is_complex) {
       
   410           	  s4o.print(".");
       
   411           	  symbol->field_selector->accept(*this);
       
   412             }
   408             break;
   413             break;
   409           case complextype_suffix_vg:
   414           case complextype_suffix_vg:
   410             symbol->record_variable->accept(*this);
   415             symbol->record_variable->accept(*this);
   411             s4o.print(".");
   416             if (type_is_complex) {
   412             symbol->field_selector->accept(*this);
   417               s4o.print(".");
       
   418               symbol->field_selector->accept(*this);
       
   419             }
   413             break;
   420             break;
   414           default:
   421           default:
   415             print_getter(symbol);
   422             print_getter(symbol);
   416             break;
   423             break;
   417         }
   424         }