Fix infinite loop when accessing circular constants from inline assembly.

This commit is contained in:
hrkrshnn
2021-01-26 09:22:05 +01:00
committed by chriseth
parent 9fc3d88617
commit ec57c791ef
7 changed files with 85 additions and 0 deletions
+10
View File
@@ -753,6 +753,16 @@ bool TypeChecker::visit(InlineAssembly const& _inlineAssembly)
}
if (var->isConstant())
{
if (isConstantVariableRecursive(*var))
{
m_errorReporter.typeError(
3558_error,
_identifier.location,
"Constant variable is circular."
);
return false;
}
var = rootConstVariableDeclaration(*var);
if (var && !var->value())