diff options
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r-- | src/qdoc/clangcodeparser.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp index ef9483a00..25d268c0e 100644 --- a/src/qdoc/clangcodeparser.cpp +++ b/src/qdoc/clangcodeparser.cpp @@ -488,6 +488,17 @@ CXChildVisitResult ClangVisitor::visitHeader(CXCursor cursor, CXSourceLocation l readParameterNamesAndAttributes(fn, cursor); return CXChildVisit_Continue; } +#if CINDEX_VERSION >= 36 + case CXCursor_FriendDecl: { + // Friend functions are declared in the enclosing namespace + Aggregate *ns = parent_; + while (ns && ns->isClass()) + ns = ns->parent(); + QScopedValueRollback<Aggregate *> setParent(parent_, ns); + // Visit the friend functions + return visitChildren(cursor); + } +#endif case CXCursor_EnumDecl: { if (findNodeForCursor(qdb_, cursor)) // Was already parsed, propably in another translation unit return CXChildVisit_Continue; |