From 8688948a20bbff4d3bcc0281b47d8ba74b437c0a Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 22 Sep 2024 23:12:31 +0200 Subject: [PATCH] Generator: Fix shadowing using declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated moc files contain `using` which shadows the previous `_t` in the `qt_static_metacall` function. To fix this rename the `using _t`. Example.: In file included from /home/jonas/Projects/strawberry/build-qt6dev/src/mpris2_player.cpp:217: /home/jonas/Projects/strawberry/build-qt6dev/src/moc_mpris2_player.cpp: In static member function ‘static void Mpris2Player::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’: /home/jonas/Projects/strawberry/build-qt6dev/src/moc_mpris2_player.cpp:266:19: warning: declaration of ‘using _t = void (class Mpris2Player::*)(qlonglong)’ shadows a previous local [-Wshadow] 266 | using _t = void (Mpris2Player::*)(qlonglong ); | ^~ /home/jonas/Projects/strawberry/build-qt6dev/src/moc_mpris2_player.cpp:247:11: note: shadowed declaration is here 247 | auto *_t = static_cast(_o); | ^~ Change-Id: I4a7d4e09ea599f3db97e21ae48599423f45885f5 Reviewed-by: Fabian Kosmale (cherry picked from commit 1a746e35ec5bef7f9ecf4d0fb7d8812523888d0c) Reviewed-by: Qt Cherry-pick Bot --- src/tools/moc/generator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 1c6604a96e5..a649f9cd1d0 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -1180,7 +1180,7 @@ void Generator::generateStaticMetacall() continue; anythingUsed = true; fprintf(out, " {\n"); - fprintf(out, " using _t = %s (%s::*)(",f.type.rawName.constData() , cdef->classname.constData()); + fprintf(out, " using _q_method_type = %s (%s::*)(",f.type.rawName.constData() , cdef->classname.constData()); const auto begin = f.arguments.cbegin(); const auto end = f.arguments.cend(); @@ -1199,7 +1199,7 @@ void Generator::generateStaticMetacall() fprintf(out, ") const;\n"); else fprintf(out, ");\n"); - fprintf(out, " if (_t _q_method = &%s::%s; *reinterpret_cast<_t *>(_a[1]) == _q_method) {\n", + fprintf(out, " if (_q_method_type _q_method = &%s::%s; *reinterpret_cast<_q_method_type *>(_a[1]) == _q_method) {\n", cdef->classname.constData(), f.name.constData()); fprintf(out, " *result = %d;\n", methodindex); fprintf(out, " return;\n");