Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions integration_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ endmacro(COMPILE)

# Test zero and non-zero exit code and assert statements
RUN(NAME array_01_decl LABELS cpython llvm llvm_jit c)
# RUN(NAME array_02_decl LABELS cpython llvm llvm_jit c)
RUN(NAME array_02_decl LABELS cpython llvm llvm_jit c)
RUN(NAME array_03_decl LABELS cpython llvm llvm_jit c)
RUN(NAME variable_decl_01 LABELS cpython llvm llvm_jit c)
RUN(NAME variable_decl_02 LABELS cpython llvm llvm_jit c)
Expand All @@ -431,16 +431,16 @@ RUN(NAME array_expr_04 LABELS cpython llvm llvm_jit c)
RUN(NAME array_expr_06 LABELS cpython llvm llvm_jit c)
RUN(NAME array_expr_07 LABELS cpython llvm llvm_jit c)
RUN(NAME array_expr_08 LABELS cpython llvm llvm_jit c)
# RUN(NAME array_expr_09 LABELS cpython llvm llvm_jit c)
RUN(NAME array_expr_09 LABELS cpython llvm llvm_jit c)
RUN(NAME array_expr_10 LABELS cpython llvm llvm_jit c)
# RUN(NAME array_size_01 LABELS cpython llvm llvm_jit c)
# RUN(NAME array_size_02 LABELS cpython llvm llvm_jit c)
RUN(NAME array_size_01 LABELS cpython llvm llvm_jit c)
RUN(NAME array_size_02 LABELS cpython llvm llvm_jit c)
RUN(NAME array_01 LABELS cpython llvm llvm_jit wasm c)
RUN(NAME array_02 LABELS cpython wasm c)
RUN(NAME array_03 LABELS cpython llvm llvm_jit c)
# RUN(NAME array_04 LABELS cpython llvm llvm_jit c)
# RUN(NAME array_05 LABELS cpython llvm llvm_jit c)
# RUN(NAME array_06 LABELS cpython llvm llvm_jit)
RUN(NAME array_04 LABELS cpython llvm llvm_jit c)
RUN(NAME array_05 LABELS cpython llvm llvm_jit c)
RUN(NAME array_06 LABELS cpython llvm llvm_jit)
# RUN(NAME bindc_01 LABELS cpython llvm llvm_jit c)
# # RUN(NAME bindc_02 LABELS cpython llvm llvm_jit c)
# RUN(NAME bindc_04 LABELS llvm llvm_jit c NOFAST)
Expand Down Expand Up @@ -796,9 +796,9 @@ RUN(NAME test_bit_length LABELS cpython) # renable c, FIXME: This test fails

RUN(NAME generics_01 LABELS cpython llvm llvm_jit) # renable c
# RUN(NAME generics_02 LABELS cpython llvm llvm_jit c)
# RUN(NAME generics_array_01 LABELS cpython llvm llvm_jit c)
# RUN(NAME generics_array_02 LABELS cpython llvm llvm_jit c)
# RUN(NAME generics_array_03 LABELS cpython llvm llvm_jit c)
RUN(NAME generics_array_01 LABELS cpython llvm llvm_jit c)
RUN(NAME generics_array_02 LABELS cpython llvm llvm_jit c)
RUN(NAME generics_array_03 LABELS cpython llvm llvm_jit c)
RUN(NAME generics_list_01 LABELS cpython llvm llvm_jit) # renable c
RUN(NAME test_statistics_01 LABELS cpython llvm llvm_jit NOFAST)
# RUN(NAME test_statistics_02 LABELS cpython llvm llvm_jit NOFAST REQ_PY_VER 3.10)
Expand Down
41 changes: 17 additions & 24 deletions src/lpython/semantics/python_ast_to_asr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8645,31 +8645,24 @@ we will have to use something else.
} else {
const Location& loc = x.base.base.loc;
ASR::ttype_t* el_type = ASRUtils::type_get_past_array(
ASRUtils::type_get_past_allocatable_pointer(type));
if( !ASRUtils::is_struct(*el_type) ) {
ASR::expr_t* zero = ASRUtils::get_constant_zero_with_given_type(al, el_type);
LCOMPILERS_ASSERT(assign_asr_target)
ASRUtils::make_ArrayBroadcast_t_util(al, x.base.base.loc, assign_asr_target, zero);
tmp = &(zero->base);
} else {
ASR::expr_t* zero = ASRUtils::get_constant_zero_with_given_type(al, int32);
LCOMPILERS_ASSERT(assign_asr_target)
size_t rank = ASRUtils::extract_n_dims_from_ttype(type);
Vec<ASR::array_index_t> array_index; array_index.reserve(al, rank);
for( size_t i = 0; i < rank; i++ ) {
ASR::array_index_t idx;
idx.loc = loc;
idx.m_left = nullptr;
idx.m_right = zero;
idx.m_step = nullptr;
array_index.push_back(al, idx);
}
ASR::expr_t* arrayitem = ASRUtils::EXPR(ASR::make_ArrayItem_t(
al, loc, assign_asr_target, array_index.p, array_index.size(),
el_type, ASR::arraystorageType::RowMajor, nullptr));
ASRUtils::make_ArrayBroadcast_t_util(al, x.base.base.loc, assign_asr_target, arrayitem);
tmp = &(arrayitem->base);
ASRUtils::type_get_past_allocatable_pointer(type));
ASR::expr_t* zero = ASRUtils::get_constant_zero_with_given_type(al, int32);
LCOMPILERS_ASSERT(assign_asr_target)
size_t rank = ASRUtils::extract_n_dims_from_ttype(type);
Vec<ASR::array_index_t> array_index; array_index.reserve(al, rank);
for( size_t i = 0; i < rank; i++ ) {
ASR::array_index_t idx;
idx.loc = loc;
idx.m_left = nullptr;
idx.m_right = zero;
idx.m_step = nullptr;
array_index.push_back(al, idx);
}
ASR::expr_t* arrayitem = ASRUtils::EXPR(ASR::make_ArrayItem_t(
al, loc, assign_asr_target, array_index.p, array_index.size(),
el_type, ASR::arraystorageType::RowMajor, nullptr));
ASRUtils::make_ArrayBroadcast_t_util(al, x.base.base.loc, assign_asr_target, arrayitem);
tmp = &(arrayitem->base);
}
return;
} else if (call_name == "c_p_pointer") {
Expand Down
2 changes: 1 addition & 1 deletion tests/reference/asr-array_01_decl-39cf894.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"outfile": null,
"outfile_hash": null,
"stdout": "asr-array_01_decl-39cf894.stdout",
"stdout_hash": "5a0243f2a25c2cfd117cd99812f153005be8c0e9d5d21838bd492aa8",
"stdout_hash": "1468a63c74244b92fdc4dcebcd4b17cecf4c1c64a5fda35c3d234944",
"stderr": null,
"stderr_hash": null,
"returncode": 0
Expand Down
Loading
Loading