From 5f92047b6e466739ac3b9db55f1400b8db874afd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4=C3=A4tt=C3=A4?= Date: Wed, 10 Sep 2025 09:06:04 +0300 Subject: [PATCH] Tracepointgen: handle windows absolute paths Handle windows absolute paths when recursively searching include files. Fixes: QTBUG-140058 Pick-to: 6.10 Change-Id: Ie21a083f50602357efaa2c8d0ac87348a27fd129 Reviewed-by: Janne Roine Reviewed-by: Sami Varanka --- src/tools/tracepointgen/parser.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/tools/tracepointgen/parser.cpp b/src/tools/tracepointgen/parser.cpp index 1e1af9e6af9..b1339501b2c 100644 --- a/src/tools/tracepointgen/parser.cpp +++ b/src/tools/tracepointgen/parser.cpp @@ -416,9 +416,8 @@ void Parser::parseMetadata(const QString &data, qsizetype offset, const QStringL if (values.isEmpty()) { if (flags && name.endsWith(QLatin1Char('s'))) values = findEnumValues(name.left(name.length() - 1), includes); - if (values.isEmpty()) { - DEBUGPRINTF(printf("Unable to find values for %s\n", qPrintable(name))); - } + if (values.isEmpty()) + panic("Unable to find values for %s\n", qPrintable(name)); } if (!values.isEmpty()) { auto moreValues = enumsToValues(values); @@ -505,7 +504,7 @@ void Parser::addIncludesRecursive(const QString &filename, QList &inclu data += line + QLatin1Char(QLatin1Char('\n')); } - QRegularExpression includeMacro(QStringLiteral("#include [\"<]([A-Za-z0-9_./-]*.h)[\">]")); + QRegularExpression includeMacro(QStringLiteral("#include [\"<]([A-Za-z0-9_./-:]*.h)[\">]")); QRegularExpressionMatchIterator i = includeMacro.globalMatch(data); while (i.hasNext()) { QRegularExpressionMatch match = i.next(); @@ -549,7 +548,7 @@ void Parser::parse(QIODevice &input, const QString &name) QStringList includes; - QRegularExpression includeMacro(QStringLiteral("#include [\"<]([A-Za-z0-9_./-]*.h)[\">]")); + QRegularExpression includeMacro(QStringLiteral("#include [\"<]([A-Za-z0-9_./-:]*.h)[\">]")); QRegularExpressionMatchIterator i = includeMacro.globalMatch(data); while (i.hasNext()) { QRegularExpressionMatch match = i.next();