diff options
author | chriseth <chris@ethereum.org> | 2016-10-26 20:28:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-26 20:28:10 +0800 |
commit | 34e2209bcc782ceb0400b73cda23bf1173ea34e9 (patch) | |
tree | 33d044a39ec84cd20c505b62c0d440ad78ee6617 /libsolidity/ast | |
parent | 4f1b5d26f7942117b44f199b0e73ce648b90bafb (diff) | |
parent | 3ca5900b8c0b69d640ef46388b0d2250275356fc (diff) | |
download | dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.tar dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.tar.gz dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.tar.bz2 dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.tar.lz dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.tar.xz dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.tar.zst dexon-solidity-34e2209bcc782ceb0400b73cda23bf1173ea34e9.zip |
Merge pull request #1274 from ethereum/signed-exp
Banning signed exp
Diffstat (limited to 'libsolidity/ast')
-rw-r--r-- | libsolidity/ast/Types.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp index 7cfed3c8..7fe97fa7 100644 --- a/libsolidity/ast/Types.cpp +++ b/libsolidity/ast/Types.cpp @@ -349,11 +349,14 @@ TypePointer IntegerType::binaryOperatorResult(Token::Value _operator, TypePointe return commonType; if (Token::isBooleanOp(_operator)) return TypePointer(); - // Nothing else can be done with addresses if (auto intType = dynamic_pointer_cast<IntegerType const>(commonType)) { + // Nothing else can be done with addresses if (intType->isAddress()) return TypePointer(); + // Signed EXP is not allowed + if (Token::Exp == _operator && intType->isSigned()) + return TypePointer(); } else if (auto fixType = dynamic_pointer_cast<FixedPointType const>(commonType)) if (Token::Exp == _operator) |