aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2025-04-16 08:17:53 +0200
committerFriedemann Kleint <[email protected]>2025-04-16 10:05:21 +0200
commit05d93c39c0a345aba57d23425f005af9ecbfe1b4 (patch)
tree03a15db71c78fee2566acbfc60c6cca21a0b14e1 /sources/shiboken6
parent0c08eb314e613af50ce90bfc4e842a50da2cbf9f (diff)
shiboken6: Fix invalid function parameters caused by lambdas in inline code
Exclude all expressions and statements. Fixes: PYSIDE-3081 Pick-to: 6.9 6.8 Change-Id: I6178624ad7415b6320b7e86b9a10d4869fc1c687 Reviewed-by: Shyamnath Premnadh <[email protected]>
Diffstat (limited to 'sources/shiboken6')
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
index e5f82adab..6a2ae9128 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
@@ -935,6 +935,12 @@ static QString enumType(const CXCursor &cursor)
BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
{
+ // Skip inline code
+ if ((cursor.kind >= CXCursor_FirstExpr && cursor.kind <= CXCursor_LastExpr)
+ || (cursor.kind >= CXCursor_FirstStmt && cursor.kind <= CXCursor_LastStmt)) {
+ return Skip;
+ }
+
switch (cursor.kind) {
case CXCursor_CXXAccessSpecifier:
d->m_currentFunctionType = CodeModel::Normal;
@@ -1035,8 +1041,6 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
case CXCursor_FriendDecl:
d->m_withinFriendDecl = true;
break;
- case CXCursor_CompoundStmt: // Function bodies
- return Skip;
case CXCursor_Constructor:
case CXCursor_Destructor: // Note: Also use clang_CXXConstructor_is..Constructor?
case CXCursor_CXXMethod: