diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-08-16 12:47:03 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2013-08-16 15:04:56 +0200 |
commit | f4c6eae3bb304d990a1758960b8e902496a75bdc (patch) | |
tree | e685a810050eb82808eec373c6d1d9a51ab8d4aa /src/libs/cplusplus/ResolveExpression.cpp | |
parent | 92a37e261490a09c7b9810053e2977ac50d89491 (diff) | |
download | qt-creator-f4c6eae3bb304d990a1758960b8e902496a75bdc.tar.gz |
C++: Fix crash in typedef resolving
Task-number: QTCREATORBUG-9990
Change-Id: I8153f18c8b7402c5cb3edbe41098792be183de44
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.cpp')
-rw-r--r-- | src/libs/cplusplus/ResolveExpression.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index 9b09c2c5b5..08213d43a4 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -894,6 +894,8 @@ private: static QList<LookupItem> typedefsFromScopeUpToFunctionScope(const Name *name, Scope *scope) { QList<LookupItem> results; + if (!scope) + return results; Scope *enclosingBlockScope = 0; for (Block *block = scope->asBlock(); block; block = enclosingBlockScope ? enclosingBlockScope->asBlock() : 0) { @@ -977,7 +979,7 @@ ClassOrNamespace *ResolveExpression::baseExpression(const QList<LookupItem> &bas TypedefsResolver typedefsResolver(_context); foreach (const LookupItem &r, baseResults) { - if (!r.type().type()) + if (!r.type().type() || !r.scope()) continue; FullySpecifiedType ty = r.type().simplified(); FullySpecifiedType originalType = ty; |