diff --git a/src/libs/cplusplus/TypeHierarchyBuilder.cpp b/src/libs/cplusplus/TypeHierarchyBuilder.cpp index a0934d0b3d56e60d86fbb1e4df0922b808fe458f..c4bd65429fcf63f2c588d549020b38769aa2a0a5 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;