diff options
Diffstat (limited to 'src/shared/cplusplus/Symbol.cpp')
-rw-r--r-- | src/shared/cplusplus/Symbol.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/shared/cplusplus/Symbol.cpp b/src/shared/cplusplus/Symbol.cpp index da677aa3b21..8f5dc3b4921 100644 --- a/src/shared/cplusplus/Symbol.cpp +++ b/src/shared/cplusplus/Symbol.cpp @@ -164,7 +164,8 @@ Symbol::Symbol(TranslationUnit *translationUnit, unsigned sourceLocation, Name * _visibility(Symbol::Public), _scope(0), _index(0), - _next(0) + _next(0), + _isGenerated(false) { setSourceLocation(sourceLocation); setName(name); @@ -200,14 +201,24 @@ unsigned Symbol::sourceLocation() const unsigned Symbol::sourceOffset() const { return _sourceOffset; } +bool Symbol::isGenerated() const +{ return _isGenerated; } + void Symbol::setSourceLocation(unsigned sourceLocation) { _sourceLocation = sourceLocation; - if (_sourceLocation) - _sourceOffset = translationUnit()->tokenAt(sourceLocation).offset; - else + if (! _sourceLocation) { + _isGenerated = false; _sourceOffset = 0; + } else { + TranslationUnit *unit = translationUnit(); + + const Token &tk = unit->tokenAt(sourceLocation); + + _isGenerated = tk.generated; + _sourceOffset = tk.offset; + } } unsigned Symbol::line() const |