Fix source index allocation in CompilerStack. Depending on compiler(optimisations) this could be off-by-one.

This commit is contained in:
Alex Beregszaszi 2017-04-20 18:44:07 +01:00
parent 6468955fb1
commit bf074f3f41
2 changed files with 6 additions and 2 deletions

View File

@ -6,8 +6,11 @@ Features:
path(s) of the supplied source file(s) is always trusted.
Bugfixes:
* Type system: Contract inheriting from base with unimplemented constructor should be abstract.
* Assembly output: Implement missing AssemblyItem types.
* Compiler interface: Fix a bug where source indexes could be inconsistent between Solidity compiled
with different compilers (clang vs. gcc) or compiler settings. The bug was visible in AST
and source mappings.
* Type system: Contract inheriting from base with unimplemented constructor should be abstract.
### 0.4.10 (2017-03-15)

View File

@ -406,8 +406,9 @@ vector<string> CompilerStack::sourceNames() const
map<string, unsigned> CompilerStack::sourceIndices() const
{
map<string, unsigned> indices;
unsigned index = 0;
for (auto const& s: m_sources)
indices[s.first] = indices.size();
indices[s.first] = index++;
return indices;
}