Skip to content

Commit a98d558

Browse files
committed
Use const_var_names
1 parent bd2ccba commit a98d558

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/libasr/codegen/asr_to_c_cpp.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,9 @@ R"(#include <stdio.h>
689689
std::string list_dc_func = c_ds_api->get_list_deepcopy_func(list_target);
690690
if( ASR::is_a<ASR::ListConstant_t>(*x.m_value) ) {
691691
src += value;
692-
src += indent + list_dc_func + "(&" + const_name + ", &" + target + ");\n\n";
692+
ASR::ListConstant_t *l_const = ASR::down_cast<ASR::ListConstant_t>(x.m_value);
693+
std::string var_name = const_var_names[get_hash((ASR::asr_t*)l_const)];
694+
src += indent + list_dc_func + "(&" + var_name + ", &" + target + ");\n\n";
693695
} else if (ASR::is_a<ASR::ListConcat_t>(*x.m_value)) {
694696
src += indent + list_dc_func + "(" + value + ", &" + target + ");\n\n";
695697
} else {
@@ -805,7 +807,7 @@ R"(#include <stdio.h>
805807
ASR::Tuple_t* t = ASR::down_cast<ASR::Tuple_t>(x.m_type);
806808
std::string tuple_type_c = c_ds_api->get_tuple_type(t);
807809
std::string src_tmp = "";
808-
src_tmp += indent + tuple_type_c + " " + const_name + ";\n";
810+
src_tmp += indent + tuple_type_c + " " + var_name + ";\n";
809811
for (size_t i = 0; i < x.n_elements; i++) {
810812
self().visit_expr(*x.m_elements[i]);
811813
std::string ele = ".element_" + std::to_string(i);

0 commit comments

Comments
 (0)