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 - 2024 Red Hat, Inc.