stage4/generate_c/generate_c_inlinefcall.cc
changeset 410 c6486bd97392
parent 408 34a5571c859c
child 625 c0bda77b37a0
equal deleted inserted replaced
409:8d876ad522f4 410:c6486bd97392
   395     /*************************************/
   395     /*************************************/
   396 
   396 
   397     // SYM_REF2(structured_variable_c, record_variable, field_selector)
   397     // SYM_REF2(structured_variable_c, record_variable, field_selector)
   398     void *visit(structured_variable_c *symbol) {
   398     void *visit(structured_variable_c *symbol) {
   399       TRACE("structured_variable_c");
   399       TRACE("structured_variable_c");
       
   400       unsigned int vartype = search_varfb_instance_type->get_vartype(symbol->record_variable);
       
   401       bool type_is_complex = search_varfb_instance_type->type_is_complex();
   400       if (generating_inlinefunction) {
   402       if (generating_inlinefunction) {
   401         switch (wanted_variablegeneration) {
   403         switch (wanted_variablegeneration) {
   402           case complextype_base_vg:
   404           case complextype_base_vg:
   403             symbol->record_variable->accept(*this);
   405             symbol->record_variable->accept(*this);
       
   406             if (!type_is_complex) {
       
   407           	  s4o.print(".");
       
   408           	  symbol->field_selector->accept(*this);
       
   409             }
   404             break;
   410             break;
   405           case complextype_suffix_vg:
   411           case complextype_suffix_vg:
   406             symbol->record_variable->accept(*this);
   412             symbol->record_variable->accept(*this);
   407             s4o.print(".");
   413             if (type_is_complex) {
   408             symbol->field_selector->accept(*this);
   414               s4o.print(".");
       
   415               symbol->field_selector->accept(*this);
       
   416             }
   409             break;
   417             break;
   410           default:
   418           default:
   411             print_getter(symbol);
   419             print_getter(symbol);
   412             break;
   420             break;
   413         }
   421         }