summaryrefslogtreecommitdiff
path: root/src/qdoc/clangcodeparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r--src/qdoc/clangcodeparser.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index f72896dfd..c7bb37120 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -416,9 +416,12 @@ CXChildVisitResult ClangVisitor::visitHeader(CXCursor cursor, CXSourceLocation l
auto type = clang_getCursorType(cursor);
auto baseCursor = clang_getTypeDeclaration(type);
auto baseNode = findNodeForCursor(qdb_, baseCursor);
- if (!baseNode || !baseNode->isClass())
- return CXChildVisit_Continue;
auto classe = static_cast<ClassNode*>(parent_);
+ if (!baseNode || !baseNode->isClass()) {
+ QString bcName = fromCXString(clang_getCursorSpelling(baseCursor));
+ classe->addUnresolvedBaseClass(access, QStringList(bcName), bcName);
+ return CXChildVisit_Continue;
+ }
auto baseClasse = static_cast<ClassNode*>(baseNode);
classe->addResolvedBaseClass(access, baseClasse);
return CXChildVisit_Continue;
@@ -1007,6 +1010,7 @@ void ClangCodeParser::parseSourceFile(const Location& /*location*/, const QStrin
args.pop_back(); // remove the "-xc++";
}
}
+ qdb_->resolveInheritance();
}
args.clear();
args.insert(args.begin(), std::begin(defaultArgs), std::end(defaultArgs));