summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/ResolveExpression.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-08-16 12:47:03 +0200
committerKai Koehne <kai.koehne@digia.com>2013-08-16 15:04:56 +0200
commitf4c6eae3bb304d990a1758960b8e902496a75bdc (patch)
treee685a810050eb82808eec373c6d1d9a51ab8d4aa /src/libs/cplusplus/ResolveExpression.cpp
parent92a37e261490a09c7b9810053e2977ac50d89491 (diff)
downloadqt-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.cpp4
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;