From e859de3fb5203579fbb4a6774bcdf59dc00404f9 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 24 Oct 2014 10:53:01 +0200 Subject: [PATCH] Add extra declarations to make rcc output pass -Wmissing-declarations The previously produced code was valid C++. Add the declaration nevertheless to help people who want to use the switch in their own code. Task-number: QTBUG-42119 Change-Id: Ia47cf3930684474ff65e5cf37335d7d7f57a1d31 Reviewed-by: Olivier Goffart --- src/tools/rcc/rcc.cpp | 12 ++++++++++++ tests/auto/tools/rcc/data/images/images.expected | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp index 11a99d136da..9d8a7b70510 100644 --- a/src/tools/rcc/rcc.cpp +++ b/src/tools/rcc/rcc.cpp @@ -1057,6 +1057,12 @@ bool RCCResourceLibrary::writeInitializer() QByteArray initResources = "qInitResources"; initResources += initName; + + // Work around -Wmissing-declarations warnings. + writeString("int "); + writeMangleNamespaceFunction(initResources); + writeString("();\n"); + writeString("int "); writeMangleNamespaceFunction(initResources); writeString("()\n{\n"); @@ -1073,6 +1079,12 @@ bool RCCResourceLibrary::writeInitializer() //cleanup QByteArray cleanResources = "qCleanupResources"; cleanResources += initName; + + // Work around -Wmissing-declarations warnings. + writeString("int "); + writeMangleNamespaceFunction(cleanResources); + writeString("();\n"); + writeString("int "); writeMangleNamespaceFunction(cleanResources); writeString("()\n{\n"); diff --git a/tests/auto/tools/rcc/data/images/images.expected b/tests/auto/tools/rcc/data/images/images.expected index ae470db336b..1f0157d51cf 100644 --- a/tests/auto/tools/rcc/data/images/images.expected +++ b/tests/auto/tools/rcc/data/images/images.expected @@ -116,6 +116,7 @@ bool qUnregisterResourceData(int, const unsigned char *, const unsigned char *, } #endif +int QT_RCC_MANGLE_NAMESPACE(qInitResources)(); int QT_RCC_MANGLE_NAMESPACE(qInitResources)() { QT_RCC_PREPEND_NAMESPACE(qRegisterResourceData) @@ -123,6 +124,7 @@ int QT_RCC_MANGLE_NAMESPACE(qInitResources)() return 1; } +int QT_RCC_MANGLE_NAMESPACE(qCleanupResources)(); int QT_RCC_MANGLE_NAMESPACE(qCleanupResources)() { QT_RCC_PREPEND_NAMESPACE(qUnregisterResourceData)