From f4c6eae3bb304d990a1758960b8e902496a75bdc Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 16 Aug 2013 12:47:03 +0200 Subject: [PATCH] C++: Fix crash in typedef resolving Task-number: QTCREATORBUG-9990 Change-Id: I8153f18c8b7402c5cb3edbe41098792be183de44 Reviewed-by: Przemyslaw Gorszkowski Reviewed-by: Kai Koehne --- src/libs/cplusplus/ResolveExpression.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index 9b09c2c5b59..08213d43a4c 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -894,6 +894,8 @@ private: static QList typedefsFromScopeUpToFunctionScope(const Name *name, Scope *scope) { QList 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 &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;