summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2022-03-23 15:53:00 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-03-28 12:34:30 +0000
commit62fcb6dc5e663ab1620015874483a3fdfa6b0c66 (patch)
tree998502e2f22f881ab927c07a9134ae61bfbd3840
parentff16e410259ee6540a6f6afd44bb2e8c91149a20 (diff)
qdoc: ClangCodeParser: Consider ref-qualifiers when searching for nodes
findNodeForCursor() did not consider ref-qualifiers when comparing the signatures of FunctionNode candidates. This resulted in ref-qualified overloads to be masked by other overloads in certain cases. Fixes: QTBUG-101461 Change-Id: Iac02d0840339c605cdc5915f25066fe0f39ae780 Reviewed-by: Luca Di Sera <luca.disera@qt.io> (cherry picked from commit cb36a147c1f71575ea0861fb953fb6ad6684b912) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/qdoc/clangcodeparser.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index 2364981a1..199a3b8fe 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -335,6 +335,11 @@ static Node *findNodeForCursor(QDocDatabase *qdb, CXCursor cur)
continue;
if (isVariadic && parameters.last().type() != QLatin1String("..."))
continue;
+ if (fn->isRef() != (clang_Type_getCXXRefQualifier(funcType) == CXRefQualifier_LValue))
+ continue;
+ if (fn->isRefRef() != (clang_Type_getCXXRefQualifier(funcType) == CXRefQualifier_RValue))
+ continue;
+
bool different = false;
for (int i = 0; i < numArg; ++i) {
CXType argType = clang_getArgType(funcType, i);