Do not ignore fatal error in AsmParser for inline assembly

This commit is contained in:
Alex Beregszaszi 2019-02-21 12:29:45 +00:00
parent 15d275ed37
commit fcf884f201
12 changed files with 3 additions and 12 deletions

View File

@ -1043,6 +1043,8 @@ ASTPointer<InlineAssembly> Parser::parseInlineAssembly(ASTPointer<ASTString> con
yul::Parser asmParser(m_errorReporter, yul::EVMDialect::looseAssemblyForEVM());
shared_ptr<yul::Block> block = asmParser.parse(m_scanner, true);
if (block == nullptr)
BOOST_THROW_EXCEPTION(FatalError());
nodeFactory.markEndPosition();
return nodeFactory.createNode<InlineAssembly>(_docString, block);
}

View File

@ -48,8 +48,7 @@ shared_ptr<Block> Parser::parse(std::shared_ptr<Scanner> const& _scanner, bool _
}
catch (FatalError const&)
{
if (m_errorReporter.errors().empty())
throw; // Something is weird here, rather throw again.
solAssert(!m_errorReporter.errors().empty(), "Fatal error detected, but no error is reported.");
}
return nullptr;
}

View File

@ -7,4 +7,3 @@ contract C {
}
// ----
// ParserError: (67-70): Cannot use instruction names for identifier names.
// ParserError: (71-73): Expected ';' but got ':='

View File

@ -10,4 +10,3 @@ contract C {
}
// ----
// ParserError: (113-114): Literal, identifier or instruction expected.
// ParserError: (113-114): Expected primary expression.

View File

@ -7,4 +7,3 @@ contract C {
}
// ----
// ParserError: (72-73): Expected identifier but got '('
// ParserError: (79-80): Expected ';' but got '{'

View File

@ -7,4 +7,3 @@ contract C {
}
// ----
// ParserError: (72-73): Literal, identifier or instruction expected.
// ParserError: (72-73): Octal numbers not allowed.

View File

@ -8,4 +8,3 @@ contract C {
}
// ----
// ParserError: (87-89): Literal, identifier or instruction expected.
// ParserError: (87-89): Expected primary expression.

View File

@ -8,4 +8,3 @@ contract C {
}
// ----
// ParserError: (102-105): Cannot use instruction names for identifier names.
// ParserError: (105-106): Expected ';' but got ','

View File

@ -7,4 +7,3 @@ contract C {
}
// ----
// ParserError: (70-72): Variable name must precede ":=" in assignment.
// ParserError: (70-72): Expected primary expression.

View File

@ -7,4 +7,3 @@ contract C {
}
// ----
// ParserError: (70-71): Label name must precede ":".
// ParserError: (70-71): Expected primary expression.

View File

@ -7,4 +7,3 @@ contract C {
}
// ----
// ParserError: (69-70): Literal, identifier or instruction expected.
// ParserError: (69-70): Expected primary expression.

View File

@ -8,4 +8,3 @@ contract C {
}
// ----
// ParserError: (107-108): Literal, identifier or instruction expected.
// ParserError: (107-108): Expected primary expression.