Skip to content

Commit f61b952

Browse files
authored
Set deepcopy (#2738)
* Add deepcopy for sets * Update is_llvm_struct
1 parent 0f16696 commit f61b952

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/libasr/codegen/llvm_utils.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,6 +1947,11 @@ namespace LCompilers {
19471947
dict_api->dict_deepcopy(src, dest, dict_type, module, name2memidx);
19481948
break ;
19491949
}
1950+
case ASR::ttypeType::Set: {
1951+
ASR::Set_t *set_type = ASR::down_cast<ASR::Set_t>(asr_type);
1952+
set_api->set_deepcopy(src, dest, set_type, module, name2memidx);
1953+
break;
1954+
}
19501955
case ASR::ttypeType::StructType: {
19511956
ASR::StructType_t* struct_t = ASR::down_cast<ASR::StructType_t>(asr_type);
19521957
ASR::Struct_t* struct_type_t = ASR::down_cast<ASR::Struct_t>(

src/libasr/codegen/llvm_utils.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ namespace LCompilers {
183183
ASR::is_a<ASR::List_t>(*asr_type) ||
184184
ASR::is_a<ASR::StructType_t>(*asr_type) ||
185185
ASR::is_a<ASR::Class_t>(*asr_type)||
186-
ASR::is_a<ASR::Dict_t>(*asr_type);
186+
ASR::is_a<ASR::Dict_t>(*asr_type) ||
187+
ASR::is_a<ASR::Set_t>(*asr_type);
187188
}
188189
static inline bool is_llvm_pointer(const ASR::ttype_t& asr_type) {
189190
return ( ASR::is_a<ASR::Pointer_t>(asr_type) ||

0 commit comments

Comments
 (0)