aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorBob Summerwill <bob@summerwill.net>2016-04-01 00:29:30 +0800
committerBob Summerwill <bob@summerwill.net>2016-04-01 00:29:30 +0800
commit9fbd5c32157731a7d8f8a14bfd67ff746bf605d7 (patch)
tree91c14b57f526f7d5e40aabb190d39216855bf9fc /libsolidity
parent4d200e3ee681d47b11fc31f343901b30f9a15fef (diff)
parente31ecc8f77432197e99b4ee966d4b1f75b0f4b02 (diff)
downloaddexon-solidity-9fbd5c32157731a7d8f8a14bfd67ff746bf605d7.tar.gz
dexon-solidity-9fbd5c32157731a7d8f8a14bfd67ff746bf605d7.tar.zst
dexon-solidity-9fbd5c32157731a7d8f8a14bfd67ff746bf605d7.zip
Merge pull request #467 from chriseth/fixerrors
Do not use source reference if it is empty.
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/interface/SourceReferenceFormatter.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/libsolidity/interface/SourceReferenceFormatter.cpp b/libsolidity/interface/SourceReferenceFormatter.cpp
index 65d7fbc8..7b91dd2c 100644
--- a/libsolidity/interface/SourceReferenceFormatter.cpp
+++ b/libsolidity/interface/SourceReferenceFormatter.cpp
@@ -91,7 +91,7 @@ void SourceReferenceFormatter::printExceptionInformation(
auto secondarylocation = boost::get_error_info<errinfo_secondarySourceLocation>(_exception);
Scanner const* scannerPtr = nullptr;
- if (location)
+ if (location && location->sourceName)
{
scannerPtr = &_scannerFromSourceName(*location->sourceName);
printSourceName(_stream, *location, *scannerPtr);
@@ -101,7 +101,7 @@ void SourceReferenceFormatter::printExceptionInformation(
if (string const* description = boost::get_error_info<errinfo_comment>(_exception))
_stream << ": " << *description << endl;
- if (location)
+ if (location && location->sourceName)
{
scannerPtr = &_scannerFromSourceName(*location->sourceName);
printSourceLocation(_stream, *location, *scannerPtr);
@@ -111,8 +111,13 @@ void SourceReferenceFormatter::printExceptionInformation(
{
for (auto info: secondarylocation->infos)
{
- scannerPtr = &_scannerFromSourceName(*info.second.sourceName);
_stream << info.first << " ";
+ if (!info.second.sourceName)
+ {
+ _stream << endl;
+ continue;
+ }
+ scannerPtr = &_scannerFromSourceName(*info.second.sourceName);
printSourceName(_stream, info.second, *scannerPtr);
_stream << endl;
printSourceLocation(_stream, info.second, *scannerPtr);