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.cpp11
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;