Reported by clang++, but not by g++.
../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for function 'LockModule' [-Werror,-Wmissing-prototypes]
48 | void LockModule(BOOL lock)
| ^
../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
48 | void LockModule(BOOL lock)
| ^
| static
../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for function 'DllMain' [-Werror,-Wmissing-prototypes]
531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved)
| ^
../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved)
| ^
| static
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
qga/vss-win32/install.cpp | 6 +++++-
qga/vss-win32/provider.cpp | 5 ++++-
qga/vss-win32/requester.cpp | 8 ++++----
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp
index 84944133f79..5cea5bcf747 100644
--- a/qga/vss-win32/install.cpp
+++ b/qga/vss-win32/install.cpp
@@ -39,7 +39,7 @@ const GUID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, 0x11d0,
const GUID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf,
{0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24} };
-void errmsg(DWORD err, const char *text)
+static void errmsg(DWORD err, const char *text)
{
/*
* `text' contains function call statement when errmsg is called via chk().
@@ -242,6 +242,7 @@ out:
}
/* Unregister this module from COM+ Applications Catalog */
+STDAPI COMUnregister(void);
STDAPI COMUnregister(void)
{
qga_debug_begin;
@@ -256,6 +257,7 @@ out:
}
/* Register this module to COM+ Applications Catalog */
+STDAPI COMRegister(void);
STDAPI COMRegister(void)
{
qga_debug_begin;
@@ -380,11 +382,13 @@ out:
return hr;
}
+STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int);
STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int)
{
COMRegister();
}
+STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int);
STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int)
{
COMUnregister();
diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp
index cc72e5ef1b9..a102a23fbf1 100644
--- a/qga/vss-win32/provider.cpp
+++ b/qga/vss-win32/provider.cpp
@@ -45,7 +45,7 @@ const IID IID_IVssEnumObject = { 0xAE1C7110, 0x2F60, 0x11d3,
{0x8A, 0x39, 0x00, 0xC0, 0x4F, 0x72, 0xD8, 0xE3} };
-void LockModule(BOOL lock)
+static void LockModule(BOOL lock)
{
if (lock) {
InterlockedIncrement(&g_nComObjsInUse);
@@ -527,6 +527,9 @@ STDAPI DllCanUnloadNow()
return g_nComObjsInUse == 0 ? S_OK : S_FALSE;
}
+EXTERN_C
+BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved);
+
EXTERN_C
BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved)
{
diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
index 9884c65e707..4401d55e3a4 100644
--- a/qga/vss-win32/requester.cpp
+++ b/qga/vss-win32/requester.cpp
@@ -254,8 +254,8 @@ out:
qga_debug_end;
}
-DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName,
- DWORD defaultData)
+static DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName,
+ DWORD defaultData)
{
qga_debug_begin;
@@ -272,12 +272,12 @@ DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName,
return dwordData;
}
-bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT)
+static bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT)
{
return (vssBT > VSS_BT_UNDEFINED && vssBT < VSS_BT_OTHER);
}
-VSS_BACKUP_TYPE get_vss_backup_type(
+static VSS_BACKUP_TYPE get_vss_backup_type(
VSS_BACKUP_TYPE defaultVssBT = DEFAULT_VSS_BACKUP_TYPE)
{
qga_debug_begin;
--
2.39.5
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
On Thu, Oct 31, 2024 at 6:05 AM Pierrick Bouvier <
pierrick.bouvier@linaro.org> wrote:
> Reported by clang++, but not by g++.
>
> ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for
> function 'LockModule' [-Werror,-Wmissing-prototypes]
> 48 | void LockModule(BOOL lock)
> | ^
> ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the function
> is not intended to be used outside of this translation unit
> 48 | void LockModule(BOOL lock)
> | ^
> | static
> ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for
> function 'DllMain' [-Werror,-Wmissing-prototypes]
> 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
> lpReserved)
> | ^
> ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the
> function is not intended to be used outside of this translation unit
> 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
> lpReserved)
> | ^
> | static
>
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
> qga/vss-win32/install.cpp | 6 +++++-
> qga/vss-win32/provider.cpp | 5 ++++-
> qga/vss-win32/requester.cpp | 8 ++++----
> 3 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp
> index 84944133f79..5cea5bcf747 100644
> --- a/qga/vss-win32/install.cpp
> +++ b/qga/vss-win32/install.cpp
> @@ -39,7 +39,7 @@ const GUID CLSID_WbemLocator = { 0x4590f811, 0x1d3a,
> 0x11d0,
> const GUID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf,
> {0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24} };
>
> -void errmsg(DWORD err, const char *text)
> +static void errmsg(DWORD err, const char *text)
> {
> /*
> * `text' contains function call statement when errmsg is called via
> chk().
> @@ -242,6 +242,7 @@ out:
> }
>
> /* Unregister this module from COM+ Applications Catalog */
> +STDAPI COMUnregister(void);
> STDAPI COMUnregister(void)
> {
> qga_debug_begin;
> @@ -256,6 +257,7 @@ out:
> }
>
> /* Register this module to COM+ Applications Catalog */
> +STDAPI COMRegister(void);
> STDAPI COMRegister(void)
> {
> qga_debug_begin;
> @@ -380,11 +382,13 @@ out:
> return hr;
> }
>
> +STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int);
> STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int)
> {
> COMRegister();
> }
>
> +STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int);
> STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int)
> {
> COMUnregister();
> diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp
> index cc72e5ef1b9..a102a23fbf1 100644
> --- a/qga/vss-win32/provider.cpp
> +++ b/qga/vss-win32/provider.cpp
> @@ -45,7 +45,7 @@ const IID IID_IVssEnumObject = { 0xAE1C7110, 0x2F60,
> 0x11d3,
> {0x8A, 0x39, 0x00, 0xC0, 0x4F, 0x72, 0xD8, 0xE3} };
>
>
> -void LockModule(BOOL lock)
> +static void LockModule(BOOL lock)
> {
> if (lock) {
> InterlockedIncrement(&g_nComObjsInUse);
> @@ -527,6 +527,9 @@ STDAPI DllCanUnloadNow()
> return g_nComObjsInUse == 0 ? S_OK : S_FALSE;
> }
>
> +EXTERN_C
> +BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
> lpReserved);
> +
> EXTERN_C
> BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved)
> {
> diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
> index 9884c65e707..4401d55e3a4 100644
> --- a/qga/vss-win32/requester.cpp
> +++ b/qga/vss-win32/requester.cpp
> @@ -254,8 +254,8 @@ out:
> qga_debug_end;
> }
>
> -DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName,
> - DWORD defaultData)
> +static DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR
> valueName,
> + DWORD defaultData)
> {
> qga_debug_begin;
>
> @@ -272,12 +272,12 @@ DWORD get_reg_dword_value(HKEY baseKey, LPCSTR
> subKey, LPCSTR valueName,
> return dwordData;
> }
>
> -bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT)
> +static bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT)
> {
> return (vssBT > VSS_BT_UNDEFINED && vssBT < VSS_BT_OTHER);
> }
>
> -VSS_BACKUP_TYPE get_vss_backup_type(
> +static VSS_BACKUP_TYPE get_vss_backup_type(
> VSS_BACKUP_TYPE defaultVssBT = DEFAULT_VSS_BACKUP_TYPE)
> {
> qga_debug_begin;
> --
> 2.39.5
>
>
Hi Pierrick,
I got this patch in my PULL with QGA patches.
Best Regards,
Konstantin Kostiuk.
On Thu, Oct 31, 2024 at 3:32 PM Konstantin Kostiuk <kkostiuk@redhat.com>
wrote:
> Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
>
> On Thu, Oct 31, 2024 at 6:05 AM Pierrick Bouvier <
> pierrick.bouvier@linaro.org> wrote:
>
>> Reported by clang++, but not by g++.
>>
>> ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for
>> function 'LockModule' [-Werror,-Wmissing-prototypes]
>> 48 | void LockModule(BOOL lock)
>> | ^
>> ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the
>> function is not intended to be used outside of this translation unit
>> 48 | void LockModule(BOOL lock)
>> | ^
>> | static
>> ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for
>> function 'DllMain' [-Werror,-Wmissing-prototypes]
>> 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
>> lpReserved)
>> | ^
>> ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the
>> function is not intended to be used outside of this translation unit
>> 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
>> lpReserved)
>> | ^
>> | static
>>
>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
>> ---
>> qga/vss-win32/install.cpp | 6 +++++-
>> qga/vss-win32/provider.cpp | 5 ++++-
>> qga/vss-win32/requester.cpp | 8 ++++----
>> 3 files changed, 13 insertions(+), 6 deletions(-)
>>
>> diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp
>> index 84944133f79..5cea5bcf747 100644
>> --- a/qga/vss-win32/install.cpp
>> +++ b/qga/vss-win32/install.cpp
>> @@ -39,7 +39,7 @@ const GUID CLSID_WbemLocator = { 0x4590f811, 0x1d3a,
>> 0x11d0,
>> const GUID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf,
>> {0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24} };
>>
>> -void errmsg(DWORD err, const char *text)
>> +static void errmsg(DWORD err, const char *text)
>> {
>> /*
>> * `text' contains function call statement when errmsg is called via
>> chk().
>> @@ -242,6 +242,7 @@ out:
>> }
>>
>> /* Unregister this module from COM+ Applications Catalog */
>> +STDAPI COMUnregister(void);
>> STDAPI COMUnregister(void)
>> {
>> qga_debug_begin;
>> @@ -256,6 +257,7 @@ out:
>> }
>>
>> /* Register this module to COM+ Applications Catalog */
>> +STDAPI COMRegister(void);
>> STDAPI COMRegister(void)
>> {
>> qga_debug_begin;
>> @@ -380,11 +382,13 @@ out:
>> return hr;
>> }
>>
>> +STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int);
>> STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int)
>> {
>> COMRegister();
>> }
>>
>> +STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int);
>> STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int)
>> {
>> COMUnregister();
>> diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp
>> index cc72e5ef1b9..a102a23fbf1 100644
>> --- a/qga/vss-win32/provider.cpp
>> +++ b/qga/vss-win32/provider.cpp
>> @@ -45,7 +45,7 @@ const IID IID_IVssEnumObject = { 0xAE1C7110, 0x2F60,
>> 0x11d3,
>> {0x8A, 0x39, 0x00, 0xC0, 0x4F, 0x72, 0xD8, 0xE3} };
>>
>>
>> -void LockModule(BOOL lock)
>> +static void LockModule(BOOL lock)
>> {
>> if (lock) {
>> InterlockedIncrement(&g_nComObjsInUse);
>> @@ -527,6 +527,9 @@ STDAPI DllCanUnloadNow()
>> return g_nComObjsInUse == 0 ? S_OK : S_FALSE;
>> }
>>
>> +EXTERN_C
>> +BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
>> lpReserved);
>> +
>> EXTERN_C
>> BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID
>> lpReserved)
>> {
>> diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
>> index 9884c65e707..4401d55e3a4 100644
>> --- a/qga/vss-win32/requester.cpp
>> +++ b/qga/vss-win32/requester.cpp
>> @@ -254,8 +254,8 @@ out:
>> qga_debug_end;
>> }
>>
>> -DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName,
>> - DWORD defaultData)
>> +static DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR
>> valueName,
>> + DWORD defaultData)
>> {
>> qga_debug_begin;
>>
>> @@ -272,12 +272,12 @@ DWORD get_reg_dword_value(HKEY baseKey, LPCSTR
>> subKey, LPCSTR valueName,
>> return dwordData;
>> }
>>
>> -bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT)
>> +static bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT)
>> {
>> return (vssBT > VSS_BT_UNDEFINED && vssBT < VSS_BT_OTHER);
>> }
>>
>> -VSS_BACKUP_TYPE get_vss_backup_type(
>> +static VSS_BACKUP_TYPE get_vss_backup_type(
>> VSS_BACKUP_TYPE defaultVssBT = DEFAULT_VSS_BACKUP_TYPE)
>> {
>> qga_debug_begin;
>> --
>> 2.39.5
>>
>>
Hi Konstantin, On 11/4/24 05:43, Konstantin Kostiuk wrote: > Hi Pierrick, > > I got this patch in my PULL with QGA patches. > > Best Regards, > Konstantin Kostiuk. > Thanks for pulling those two patches before the upcoming release. Regards, Pierrick
On 31/10/24 01:04, Pierrick Bouvier wrote: > Reported by clang++, but not by g++. > > ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for function 'LockModule' [-Werror,-Wmissing-prototypes] > 48 | void LockModule(BOOL lock) > | ^ > ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > 48 | void LockModule(BOOL lock) > | ^ > | static > ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for function 'DllMain' [-Werror,-Wmissing-prototypes] > 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) > | ^ > ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) > | ^ > | static > > Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > --- > qga/vss-win32/install.cpp | 6 +++++- > qga/vss-win32/provider.cpp | 5 ++++- > qga/vss-win32/requester.cpp | 8 ++++---- > 3 files changed, 13 insertions(+), 6 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
© 2016 - 2025 Red Hat, Inc.