@@ -721,6 +721,17 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
721
721
ASR::expr_t * target = ASRUtils::EXPR (ASR::make_Var_t (al, x.base .base .loc , arg));
722
722
process_intrinsic_function (al, x.base .base .loc , intrinsic_func, module_scope, target);
723
723
724
+ ASR::call_arg_t call_arg;
725
+ call_arg.loc = x.base .base .loc ;
726
+ call_arg.m_value = target;
727
+ call_args.push_back (al, call_arg);
728
+ } else if (ASR::is_a<ASR::Cast_t>(*val)) {
729
+ ASR::Cast_t* cast_t = ASR::down_cast<ASR::Cast_t>(val);
730
+ if (cast_t ->m_kind != ASR::cast_kindType::IntegerToSymbolicExpression) return ;
731
+ this ->visit_Cast (*cast_t );
732
+ ASR::symbol_t *var_sym = current_scope->get_symbol (symengine_stack.pop ());
733
+ ASR::expr_t * target = ASRUtils::EXPR (ASR::make_Var_t (al, x.base .base .loc , var_sym));
734
+
724
735
ASR::call_arg_t call_arg;
725
736
call_arg.loc = x.base .base .loc ;
726
737
call_arg.m_value = target;
@@ -793,9 +804,8 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
793
804
} else if (ASR::is_a<ASR::Cast_t>(*val)) {
794
805
ASR::Cast_t* cast_t = ASR::down_cast<ASR::Cast_t>(val);
795
806
if (cast_t ->m_kind != ASR::cast_kindType::IntegerToSymbolicExpression) return ;
796
- ASR::symbol_t *var_sym = nullptr ;
797
807
this ->visit_Cast (*cast_t );
798
- var_sym = current_scope->get_symbol (symengine_stack.pop ());
808
+ ASR:: symbol_t * var_sym = current_scope->get_symbol (symengine_stack.pop ());
799
809
ASR::expr_t * target = ASRUtils::EXPR (ASR::make_Var_t (al, x.base .base .loc , var_sym));
800
810
801
811
// Now create the FunctionCall node for basic_str
0 commit comments