From 9731955918b8a0d5d7c1dd8c6987e2d953a9edeb Mon Sep 17 00:00:00 2001 From: Leandro Melo Date: Mon, 7 Nov 2011 14:10:02 +0100 Subject: [PATCH] C++: Fix crash in type hierarchy when anonymous in typedefs Task-number: QTCREATORBUG-6445 Change-Id: If62745b58cad330c1f6a8605a444ec13644a1f20 Reviewed-by: Christian Kamm --- src/libs/cplusplus/TypeHierarchyBuilder.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libs/cplusplus/TypeHierarchyBuilder.cpp b/src/libs/cplusplus/TypeHierarchyBuilder.cpp index a0934d0b3d..c4bd65429f 100644 --- a/src/libs/cplusplus/TypeHierarchyBuilder.cpp +++ b/src/libs/cplusplus/TypeHierarchyBuilder.cpp @@ -101,9 +101,12 @@ bool DerivedHierarchyVisitor::visit(Class *symbol) Symbol *actualBaseSymbol = items.first().declaration(); if (actualBaseSymbol->isTypedef()) { NamedType *namedType = actualBaseSymbol->type()->asNamedType(); + if (!namedType) { + // Anonymous aggregate such as: typedef struct {} Empty; + continue; + } const QString &typeName = _overview.prettyName(namedType->name()); - if (namedType && - (typeName == _unqualifiedName || typeName == _qualifiedName)) { + if (typeName == _unqualifiedName || typeName == _qualifiedName) { items = _context.lookup(namedType->name(), actualBaseSymbol->enclosingScope()); if (items.isEmpty() || !items.first().declaration()) continue; -- GitLab