aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SourceLocation.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/SourceLocation.h b/SourceLocation.h
index 35e3c031..b8b57b60 100644
--- a/SourceLocation.h
+++ b/SourceLocation.h
@@ -41,8 +41,21 @@ struct SourceLocation
SourceLocation(): start(-1), end(-1) { }
SourceLocation(SourceLocation const& _other):
- start(_other.start), end(_other.end), sourceName(_other.sourceName) {}
- SourceLocation& operator=(SourceLocation const& _other) { start = _other.start; end = _other.end; sourceName = _other.sourceName; return *this;}
+ start(_other.start),
+ end(_other.end),
+ sourceName(_other.sourceName)
+ {}
+
+ SourceLocation& operator=(SourceLocation const& _other)
+ {
+ if (&_other == this)
+ return *this;
+
+ start = _other.start;
+ end = _other.end;
+ sourceName = _other.sourceName;
+ return *this;
+ }
bool operator==(SourceLocation const& _other) const { return start == _other.start && end == _other.end;}
bool operator!=(SourceLocation const& _other) const { return !operator==(_other); }