@@ -831,6 +831,8 @@ class CommonVisitor : public AST::BaseVisitor<Struct> {
831831 this ->visit_expr (*exprs[i]);
832832 ASR::expr_t * expr = nullptr ;
833833 ASR::call_arg_t arg;
834+ arg.loc .first = -1 ;
835+ arg.loc .last = -1 ;
834836 if (tmp) {
835837 expr = ASRUtils::EXPR (tmp);
836838 arg.loc = expr->base .loc ;
@@ -2362,7 +2364,7 @@ class CommonVisitor : public AST::BaseVisitor<Struct> {
23622364 result = left_value >> right_value;
23632365 break ;
23642366 }
2365- default : { LCOMPILERS_ASSERT ( false ); } // should never happen
2367+ default : { throw SemanticError ( " ICE: Unknown binary operator " , loc ); } // should never happen
23662368 }
23672369 value = ASR::down_cast<ASR::expr_t >(ASR::make_IntegerConstant_t (
23682370 al, loc, result, dest_type));
@@ -3396,7 +3398,7 @@ class CommonVisitor : public AST::BaseVisitor<Struct> {
33963398 ASR::expr_t *left = ASRUtils::EXPR (tmp);
33973399 this ->visit_expr (*x.m_right );
33983400 ASR::expr_t *right = ASRUtils::EXPR (tmp);
3399- ASR::binopType op;
3401+ ASR::binopType op = ASR::binopType::Add /* temporary assignment */ ;
34003402 std::string op_name = " " ;
34013403 switch (x.m_op ) {
34023404 case (AST::operatorType::Add) : { op = ASR::binopType::Add; break ; }
@@ -5602,7 +5604,7 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
56025604 ASR::expr_t *right = ASRUtils::EXPR (tmp);
56035605 ASR::ttype_t * left_type = ASRUtils::expr_type (left);
56045606 ASR::ttype_t * right_type = ASRUtils::expr_type (right);
5605- ASR::binopType op;
5607+ ASR::binopType op = ASR::binopType::Add /* temporary assignment */ ;
56065608 std::string op_name = " " ;
56075609 switch (x.m_op ) {
56085610 case (AST::operatorType::Add) : { op = ASR::binopType::Add; break ; }
@@ -6313,7 +6315,9 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
63136315 result = (strcmp < 0 || strcmp == 0 );
63146316 break ;
63156317 }
6316- default : LCOMPILERS_ASSERT (false ); // should never happen
6318+ default : {
6319+ throw SemanticError (" ICE: Unknown compare operator" , x.base .base .loc ); // should never happen
6320+ }
63176321 }
63186322 value = ASR::down_cast<ASR::expr_t >(ASR::make_LogicalConstant_t (
63196323 al, x.base .base .loc , result, type));
0 commit comments