@@ -186,8 +186,9 @@ class CCPPDSUtils {
186
186
return func + " (" + value + " , &" + target + " );" ;
187
187
} else if (ASR::is_a<ASR::Character_t>(*t)) {
188
188
return " strcpy(" + target + " , " + value + " );" ;
189
+ } else {
190
+ return target + " = " + value + " ;" ;
189
191
}
190
- LFORTRAN_ASSERT (false );
191
192
}
192
193
193
194
bool is_non_primitive_DT (ASR::ttype_t *t) {
@@ -486,7 +487,7 @@ class CCPPDSUtils {
486
487
if ( ASR::is_a<ASR::Character_t>(*m_type) ) {
487
488
generated_code += indent + tab + " x->data[x->current_end_point] = (char*) malloc(40 * sizeof(char));\n " ;
488
489
}
489
- generated_code += indent + generated_code += indent + tab + \
490
+ generated_code += indent + tab + \
490
491
get_deepcopy (m_type, " element" , " x->data[x->current_end_point]" ) + " \n " ;
491
492
generated_code += indent + tab + " x->current_end_point += 1;\n " ;
492
493
generated_code += indent + " }\n\n " ;
@@ -620,11 +621,11 @@ class CCPPDSUtils {
620
621
for (size_t i=0 ; i<t->n_type ; i++) {
621
622
std::string n = std::to_string (i);
622
623
if (ASR::is_a<ASR::Character_t>(*t->m_type [i])) {
623
- tmp_gen += indent + tab + " data ->element_" + n + " = " + \
624
+ tmp_gen += indent + tab + " dest ->element_" + n + " = " + \
624
625
" (char *) malloc(40*sizeof(char));\n " ;
625
626
}
626
627
tmp_gen += indent + tab + get_deepcopy (t->m_type [i], " src.element_" + n,
627
- " data ->element_" + n) + " \n " ;
628
+ " dest ->element_" + n) + " \n " ;
628
629
}
629
630
tmp_gen += indent + " }\n\n " ;
630
631
func_decls += tmp_def;
0 commit comments