@@ -529,11 +529,11 @@ void CHC::endVisit(FunctionCall const& _funCall)
529
529
break ;
530
530
case FunctionType::Kind::External:
531
531
case FunctionType::Kind::BareStaticCall:
532
+ case FunctionType::Kind::BareCall:
532
533
externalFunctionCall (_funCall);
533
534
SMTEncoder::endVisit (_funCall);
534
535
break ;
535
536
case FunctionType::Kind::DelegateCall:
536
- case FunctionType::Kind::BareCall:
537
537
case FunctionType::Kind::BareCallCode:
538
538
case FunctionType::Kind::BareDelegateCall:
539
539
case FunctionType::Kind::Creation:
@@ -746,23 +746,29 @@ void CHC::externalFunctionCall(FunctionCall const& _funCall)
746
746
747
747
FunctionType const & funType = dynamic_cast <FunctionType const &>(*_funCall.expression ().annotation ().type );
748
748
auto kind = funType.kind ();
749
- solAssert (kind == FunctionType::Kind::External || kind == FunctionType::Kind::BareStaticCall, " " );
749
+ solAssert (
750
+ kind == FunctionType::Kind::External ||
751
+ kind == FunctionType::Kind::BareCall ||
752
+ kind == FunctionType::Kind::BareStaticCall,
753
+ " "
754
+ );
755
+
756
+ bool usesStaticCall = kind == FunctionType::Kind::BareStaticCall;
750
757
751
758
solAssert (m_currentContract, " " );
752
759
auto function = functionCallToDefinition (_funCall, currentScopeContract (), m_currentContract);
753
- if (!function)
754
- return ;
755
-
756
- for (auto var: function->returnParameters ())
757
- m_context.variable (*var)->increaseIndex ();
760
+ if (function)
761
+ {
762
+ usesStaticCall |= function->stateMutability () == StateMutability::Pure ||
763
+ function->stateMutability () == StateMutability::View;
764
+ for (auto var: function->returnParameters ())
765
+ m_context.variable (*var)->increaseIndex ();
766
+ }
758
767
759
768
if (!m_currentFunction || m_currentFunction->isConstructor ())
760
769
return ;
761
770
762
771
auto preCallState = vector<smtutil::Expression>{state ().state ()} + currentStateVariables ();
763
- bool usesStaticCall = kind == FunctionType::Kind::BareStaticCall ||
764
- function->stateMutability () == StateMutability::Pure ||
765
- function->stateMutability () == StateMutability::View;
766
772
767
773
if (!usesStaticCall)
768
774
{
0 commit comments