src/bhyve/bhyve_device.c | 6 ++++-- tests/bhyvexml2argvmock.c | 4 ++-- tests/domaincapstest.c | 3 ++- tests/networkxml2conftest.c | 16 +++++++++------- 4 files changed, 17 insertions(+), 12 deletions(-)
clang 14.0.5 complains:
../src/bhyve/bhyve_device.c:42:29: error: mixing declarations and code
is incompatible with standards before C99
[-Werror,-Wdeclaration-after-statement]
virDomainPCIAddressSet *addrs = opaque;
^
1 error generated.
And a few similar errors in some other places, mainly bhyve related.
Apply a trivial fix to resolve that.
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
---
src/bhyve/bhyve_device.c | 6 ++++--
tests/bhyvexml2argvmock.c | 4 ++--
tests/domaincapstest.c | 3 ++-
tests/networkxml2conftest.c | 16 +++++++++-------
4 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/src/bhyve/bhyve_device.c b/src/bhyve/bhyve_device.c
index 5654028ca5..e4d14c4102 100644
--- a/src/bhyve/bhyve_device.c
+++ b/src/bhyve/bhyve_device.c
@@ -36,11 +36,13 @@ bhyveCollectPCIAddress(virDomainDef *def G_GNUC_UNUSED,
virDomainDeviceInfo *info,
void *opaque)
{
+ virDomainPCIAddressSet *addrs = NULL;
+ virPCIDeviceAddress *addr = NULL;
if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE)
return 0;
- virDomainPCIAddressSet *addrs = opaque;
- virPCIDeviceAddress *addr = &info->addr.pci;
+ addrs = opaque;
+ addr = &info->addr.pci;
if (addr->domain == 0 && addr->bus == 0 && addr->slot == 0) {
return 0;
diff --git a/tests/bhyvexml2argvmock.c b/tests/bhyvexml2argvmock.c
index 9b77f97e5f..fe76564d51 100644
--- a/tests/bhyvexml2argvmock.c
+++ b/tests/bhyvexml2argvmock.c
@@ -25,10 +25,10 @@ init_syms(void)
DIR *
opendir(const char *path)
{
- init_syms();
-
g_autofree char *path_override = NULL;
+ init_syms();
+
if (STREQ(path, "fakefirmwaredir")) {
path_override = g_strdup(FAKEFIRMWAREDIR);
} else if (STREQ(path, "fakefirmwareemptydir")) {
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index b4cb1894c2..b3cf4426f3 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -397,8 +397,9 @@ mymain(void)
#define DO_TEST_BHYVE(Name, Emulator, BhyveCaps, Type) \
do { \
g_autofree char *name = NULL; \
+ struct testData data; \
name = g_strdup_printf("bhyve_%s.x86_64", Name); \
- struct testData data = { \
+ data = (struct testData) { \
.name = name, \
.emulator = Emulator, \
.arch = "x86_64", \
diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c
index 726f073ddc..d18985e060 100644
--- a/tests/networkxml2conftest.c
+++ b/tests/networkxml2conftest.c
@@ -50,14 +50,16 @@ testCompareXMLToConfFiles(const char *inxml, const char *outconf,
/* Any changes to this function ^^ should be reflected here too. */
#ifndef __linux__
- char * tmp;
+ {
+ char * tmp;
- if (!(tmp = virStringReplace(confactual,
- "except-interface=lo0\n",
- "except-interface=lo\n")))
- goto fail;
- VIR_FREE(confactual);
- confactual = g_steal_pointer(&tmp);
+ if (!(tmp = virStringReplace(confactual,
+ "except-interface=lo0\n",
+ "except-interface=lo\n")))
+ goto fail;
+ VIR_FREE(confactual);
+ confactual = g_steal_pointer(&tmp);
+ }
#endif
if (virTestCompareToFile(confactual, outconf) < 0)
--
2.38.0
On Tue, Nov 08, 2022 at 08:35:31PM +0100, Roman Bogorodskiy wrote: > clang 14.0.5 complains: > > ../src/bhyve/bhyve_device.c:42:29: error: mixing declarations and code > is incompatible with standards before C99 Err, we set std=gnu99 so it shouldn't be complaining about that. > [-Werror,-Wdeclaration-after-statement] > virDomainPCIAddressSet *addrs = opaque; > ^ > 1 error generated. > > And a few similar errors in some other places, mainly bhyve related. > Apply a trivial fix to resolve that. None the less I don't like the mixing of decls/code, as it has very confusing/misleading semantics when combined with goto's that jump over a decl > > Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 11/9/22 09:15, Daniel P. Berrangé wrote: > On Tue, Nov 08, 2022 at 08:35:31PM +0100, Roman Bogorodskiy wrote: >> clang 14.0.5 complains: >> >> ../src/bhyve/bhyve_device.c:42:29: error: mixing declarations and code >> is incompatible with standards before C99 > > Err, we set std=gnu99 so it shouldn't be complaining about that. But we also enable -Wdeclaration-after-statement which checks for the same thing. I wonder how could gcc not identify these. > >> [-Werror,-Wdeclaration-after-statement] >> virDomainPCIAddressSet *addrs = opaque; >> ^ >> 1 error generated. >> >> And a few similar errors in some other places, mainly bhyve related. >> Apply a trivial fix to resolve that. > > > None the less I don't like the mixing of decls/code, as it has very > confusing/misleading semantics when combined with goto's that jump > over a decl Yep. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
On Wed, Nov 09, 2022 at 10:26:57AM +0100, Michal Prívozník wrote: > On 11/9/22 09:15, Daniel P. Berrangé wrote: > > On Tue, Nov 08, 2022 at 08:35:31PM +0100, Roman Bogorodskiy wrote: > >> clang 14.0.5 complains: > >> > >> ../src/bhyve/bhyve_device.c:42:29: error: mixing declarations and code > >> is incompatible with standards before C99 > > > > Err, we set std=gnu99 so it shouldn't be complaining about that. > > But we also enable -Wdeclaration-after-statement which checks for the > same thing. I wonder how could gcc not identify these. We don't build bhyve driver on Linux, and the FreeBSD build uses clang IIRC. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2024 Red Hat, Inc.