File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -974,6 +974,18 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
974
974
}
975
975
}
976
976
977
+ void visit_WhileLoop (const ASR::WhileLoop_t &x) {
978
+ ASR::WhileLoop_t &xx = const_cast <ASR::WhileLoop_t&>(x);
979
+ transform_stmts (xx.m_body , xx.n_body );
980
+ if (ASR::is_a<ASR::IntrinsicScalarFunction_t>(*xx.m_test )) {
981
+ ASR::IntrinsicScalarFunction_t* intrinsic_func = ASR::down_cast<ASR::IntrinsicScalarFunction_t>(xx.m_test );
982
+ if (intrinsic_func->m_type ->type == ASR::ttypeType::Logical) {
983
+ ASR::expr_t * function_call = process_attributes (xx.base .base .loc , xx.m_test );
984
+ xx.m_test = function_call;
985
+ }
986
+ }
987
+ }
988
+
977
989
void visit_Return (const ASR::Return_t &x) {
978
990
if (!symbolic_vars_to_free.empty ()){
979
991
for (ASR::symbol_t * symbol : symbolic_vars_to_free) {
You can’t perform that action at this time.
0 commit comments