From ab1f4632aaa8017f80c371eded76497832719404 Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Tue, 11 Oct 2016 00:07:11 +0200 Subject: [PATCH] Chack for non-version pragmas --- libsolidity/formal/Why3Translator.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libsolidity/formal/Why3Translator.cpp b/libsolidity/formal/Why3Translator.cpp index 8b50600ad..813fa3abe 100644 --- a/libsolidity/formal/Why3Translator.cpp +++ b/libsolidity/formal/Why3Translator.cpp @@ -757,8 +757,17 @@ bool Why3Translator::visit(Literal const& _literal) return false; } -bool Why3Translator::visit(PragmaDirective const&) +bool Why3Translator::visit(PragmaDirective const& _pragma) { + if (_pragma.tokens().empty()) + error(_pragma, "Not supported"); + else if (_pragma.literals().empty()) + error(_pragma, "Not supported"); + else if (_pragma.literals()[0] != "solidity") + error(_pragma, "Not supported"); + else if (_pragma.tokens()[0] != Token::Identifier) + error(_pragma, "A literal 'solidity' is not an identifier. Strange"); + return false; }