Fix tabs/spaces.

This commit is contained in:
chriseth 2019-02-13 16:56:46 +01:00
parent 17ea467e5b
commit 1a823f0bf8
47 changed files with 622 additions and 594 deletions

View File

@ -1,48 +1,48 @@
/* /*
This file is part of solidity. * This file is part of solidity.
*
solidity is free software: you can redistribute it and/or modify * solidity is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. * (at your option) any later version.
*
solidity is distributed in the hope that it will be useful, * solidity is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. * GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
along with solidity. If not, see <http://www.gnu.org/licenses/>. * along with solidity. If not, see <http://www.gnu.org/licenses/>.
*
This file is derived from the file "scanner.cc", which was part of the * This file is derived from the file "scanner.cc", which was part of the
V8 project. The original copyright header follows: * V8 project. The original copyright header follows:
*
Copyright 2006-2012, the V8 project authors. All rights reserved. * Copyright 2006-2012, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are * modification, are permitted provided that the following conditions are
met: * met:
*
* Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above * * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following * copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided * disclaimer in the documentation and/or other materials provided
with the distribution. * with the distribution.
* Neither the name of Google Inc. nor the names of its * * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived * contributors may be used to endorse or promote products derived
from this software without specific prior written permission. * from this software without specific prior written permission.
*
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/** /**
* @author Christian <c@ethdev.com> * @author Christian <c@ethdev.com>
@ -85,8 +85,10 @@ string CharStream::lineAtPosition(int _position) const
lineStart = 0; lineStart = 0;
else else
lineStart++; lineStart++;
return m_source.substr(lineStart, min(m_source.find('\n', lineStart), return m_source.substr(
m_source.size()) - lineStart); lineStart,
min(m_source.find('\n', lineStart), m_source.size()) - lineStart
);
} }
tuple<int, int> CharStream::translatePositionToLineColumn(int _position) const tuple<int, int> CharStream::translatePositionToLineColumn(int _position) const

View File

@ -1,48 +1,48 @@
/* /*
This file is part of solidity. * This file is part of solidity.
*
solidity is free software: you can redistribute it and/or modify * solidity is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. * (at your option) any later version.
*
solidity is distributed in the hope that it will be useful, * solidity is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. * GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
along with solidity. If not, see <http://www.gnu.org/licenses/>. * along with solidity. If not, see <http://www.gnu.org/licenses/>.
*
This file is derived from the file "scanner.h", which was part of the * This file is derived from the file "scanner.h", which was part of the
V8 project. The original copyright header follows: * V8 project. The original copyright header follows:
*
Copyright 2006-2012, the V8 project authors. All rights reserved. * Copyright 2006-2012, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are * modification, are permitted provided that the following conditions are
met: * met:
*
* Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above * * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following * copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided * disclaimer in the documentation and/or other materials provided
with the distribution. * with the distribution.
* Neither the name of Google Inc. nor the names of its * * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived * contributors may be used to endorse or promote products derived
from this software without specific prior written permission. * from this software without specific prior written permission.
*
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/** /**
* @author Christian <c@ethdev.com> * @author Christian <c@ethdev.com>

View File

@ -1,48 +1,48 @@
/* /*
This file is part of solidity. * This file is part of solidity.
*
solidity is free software: you can redistribute it and/or modify * solidity is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. * (at your option) any later version.
*
solidity is distributed in the hope that it will be useful, * solidity is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. * GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
along with solidity. If not, see <http://www.gnu.org/licenses/>. * along with solidity. If not, see <http://www.gnu.org/licenses/>.
*
This file is derived from the file "scanner.cc", which was part of the * This file is derived from the file "scanner.cc", which was part of the
V8 project. The original copyright header follows: * V8 project. The original copyright header follows:
*
Copyright 2006-2012, the V8 project authors. All rights reserved. * Copyright 2006-2012, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are * modification, are permitted provided that the following conditions are
met: * met:
*
* Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above * * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following * copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided * disclaimer in the documentation and/or other materials provided
with the distribution. * with the distribution.
* Neither the name of Google Inc. nor the names of its * * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived * contributors may be used to endorse or promote products derived
from this software without specific prior written permission. * from this software without specific prior written permission.
*
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/** /**
* @author Christian <c@ethdev.com> * @author Christian <c@ethdev.com>
@ -69,9 +69,10 @@ bool isDecimalDigit(char c)
} }
bool isHexDigit(char c) bool isHexDigit(char c)
{ {
return isDecimalDigit(c) return
|| ('a' <= c && c <= 'f') isDecimalDigit(c) ||
|| ('A' <= c && c <= 'F'); ('a' <= c && c <= 'f') ||
('A' <= c && c <= 'F');
} }
bool isLineTerminator(char c) bool isLineTerminator(char c)
{ {

View File

@ -1,48 +1,48 @@
/* /*
This file is part of solidity. * This file is part of solidity.
*
solidity is free software: you can redistribute it and/or modify * solidity is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. * (at your option) any later version.
*
solidity is distributed in the hope that it will be useful, * solidity is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. * GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
along with solidity. If not, see <http://www.gnu.org/licenses/>. * along with solidity. If not, see <http://www.gnu.org/licenses/>.
*
This file is derived from the file "scanner.h", which was part of the * This file is derived from the file "scanner.h", which was part of the
V8 project. The original copyright header follows: * V8 project. The original copyright header follows:
*
Copyright 2006-2012, the V8 project authors. All rights reserved. * Copyright 2006-2012, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are * modification, are permitted provided that the following conditions are
met: * met:
*
* Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above * * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following * copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided * disclaimer in the documentation and/or other materials provided
with the distribution. * with the distribution.
* Neither the name of Google Inc. nor the names of its * * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived * contributors may be used to endorse or promote products derived
from this software without specific prior written permission. * from this software without specific prior written permission.
*
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/** /**
* @author Christian <c@ethdev.com> * @author Christian <c@ethdev.com>

View File

@ -32,7 +32,8 @@ namespace dev
namespace solidity namespace solidity
{ {
/** Occurrence of a variable in a block of control flow. /**
* Occurrence of a variable in a block of control flow.
* Stores the declaration of the referenced variable, the * Stores the declaration of the referenced variable, the
* kind of the occurrence and possibly the node at which * kind of the occurrence and possibly the node at which
* it occurred. * it occurred.
@ -85,7 +86,8 @@ private:
ASTNode const* m_occurrence = nullptr; ASTNode const* m_occurrence = nullptr;
}; };
/** Node of the Control Flow Graph. /**
* Node of the Control Flow Graph.
* The control flow is a directed graph connecting control flow blocks. * The control flow is a directed graph connecting control flow blocks.
* An arc between two nodes indicates that the control flow can possibly * An arc between two nodes indicates that the control flow can possibly
* move from its start node to its end node during execution. * move from its start node to its end node during execution.

View File

@ -113,9 +113,13 @@ bool ASTPrinter::visit(ParameterList const& _node)
bool ASTPrinter::visit(FunctionDefinition const& _node) bool ASTPrinter::visit(FunctionDefinition const& _node)
{ {
writeLine("FunctionDefinition \"" + _node.name() + "\"" + writeLine(
"FunctionDefinition \"" +
_node.name() +
"\"" +
(_node.isPublic() ? " - public" : "") + (_node.isPublic() ? " - public" : "") +
(_node.stateMutability() == StateMutability::View ? " - const" : "")); (_node.stateMutability() == StateMutability::View ? " - const" : "")
);
printSourcePart(_node); printSourcePart(_node);
return goDeeper(); return goDeeper();
} }
@ -305,8 +309,12 @@ bool ASTPrinter::visit(TupleExpression const& _node)
bool ASTPrinter::visit(UnaryOperation const& _node) bool ASTPrinter::visit(UnaryOperation const& _node)
{ {
writeLine(string("UnaryOperation (") + (_node.isPrefixOperation() ? "prefix" : "postfix") + writeLine(
") " + TokenTraits::toString(_node.getOperator())); string("UnaryOperation (") +
(_node.isPrefixOperation() ? "prefix" : "postfix") +
") " +
TokenTraits::toString(_node.getOperator())
);
printType(_node); printType(_node);
printSourcePart(_node); printSourcePart(_node);
return goDeeper(); return goDeeper();

View File

@ -3327,8 +3327,12 @@ bool ModifierType::operator==(Type const& _other) const
return false; return false;
auto typeCompare = [](TypePointer const& _a, TypePointer const& _b) -> bool { return *_a == *_b; }; auto typeCompare = [](TypePointer const& _a, TypePointer const& _b) -> bool { return *_a == *_b; };
if (!equal(m_parameterTypes.cbegin(), m_parameterTypes.cend(), if (!equal(
other.m_parameterTypes.cbegin(), typeCompare)) m_parameterTypes.cbegin(),
m_parameterTypes.cend(),
other.m_parameterTypes.cbegin(),
typeCompare
))
return false; return false;
return true; return true;
} }

View File

@ -934,8 +934,11 @@ void ArrayUtils::clearStorageLoop(TypePointer const& _type) const
eth::AssemblyItem loopStart = _context.appendJumpToNew(); eth::AssemblyItem loopStart = _context.appendJumpToNew();
_context << loopStart; _context << loopStart;
// check for loop condition // check for loop condition
_context << Instruction::DUP1 << Instruction::DUP3 _context <<
<< Instruction::GT << Instruction::ISZERO; Instruction::DUP1 <<
Instruction::DUP3 <<
Instruction::GT <<
Instruction::ISZERO;
eth::AssemblyItem zeroLoopEnd = _context.newTag(); eth::AssemblyItem zeroLoopEnd = _context.newTag();
_context.appendConditionalJumpTo(zeroLoopEnd); _context.appendConditionalJumpTo(zeroLoopEnd);
// delete // delete

View File

@ -129,8 +129,10 @@ void CompilerContext::appendMissingLowLevelFunctions()
} }
} }
void CompilerContext::addVariable(VariableDeclaration const& _declaration, void CompilerContext::addVariable(
unsigned _offsetToCurrent) VariableDeclaration const& _declaration,
unsigned _offsetToCurrent
)
{ {
solAssert(m_asm->deposit() >= 0 && unsigned(m_asm->deposit()) >= _offsetToCurrent, ""); solAssert(m_asm->deposit() >= 0 && unsigned(m_asm->deposit()) >= _offsetToCurrent, "");
unsigned sizeOnStack = _declaration.annotation().type->sizeOnStack(); unsigned sizeOnStack = _declaration.annotation().type->sizeOnStack();

View File

@ -1310,8 +1310,10 @@ bool ExpressionCompiler::visit(MemberAccess const& _memberAccess)
utils().leftShiftNumberOnStack(224); utils().leftShiftNumberOnStack(224);
} }
else else
solAssert(!!_memberAccess.expression().annotation().type->memberType(member), solAssert(
"Invalid member access to function."); !!_memberAccess.expression().annotation().type->memberType(member),
"Invalid member access to function."
);
break; break;
case Type::Category::Magic: case Type::Category::Magic:
// we can ignore the kind of magic and only look at the name of the member // we can ignore the kind of magic and only look at the name of the member

View File

@ -927,14 +927,18 @@ bool CommandLineInterface::processInput()
} }
catch (InternalCompilerError const& _exception) catch (InternalCompilerError const& _exception)
{ {
serr() << "Internal compiler error during compilation:" << endl serr() <<
<< boost::diagnostic_information(_exception); "Internal compiler error during compilation:" <<
endl <<
boost::diagnostic_information(_exception);
return false; return false;
} }
catch (UnimplementedFeatureError const& _exception) catch (UnimplementedFeatureError const& _exception)
{ {
serr() << "Unimplemented feature:" << endl serr() <<
<< boost::diagnostic_information(_exception); "Unimplemented feature:" <<
endl <<
boost::diagnostic_information(_exception);
return false; return false;
} }
catch (Error const& _error) catch (Error const& _error)