From 1aeacfd5e97ede2a62f0e0e2cb39dc508a317268 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 19 Apr 2012 17:19:32 -0600 Subject: [PATCH] build: avoid type-punning in vbox Commit 78345c68 makes at least gcc 4.1.2 on RHEL 5 complain: cc1: warnings being treated as errors In file included from vbox/vbox_V4_0.c:13: vbox/vbox_tmpl.c: In function 'vboxDomainUndefineFlags': vbox/vbox_tmpl.c:5298: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] * src/vbox/vbox_tmpl.c (vboxDomainUndefineFlags): Use union to avoid compiler warning. --- src/vbox/vbox_tmpl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index be25828f7b..57c18a432e 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -5294,8 +5294,11 @@ vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags) ((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray, &progress); # else - vboxArray array = VBOX_ARRAY_INITIALIZER; - machine->vtbl->Delete(machine, 0, (IMedium**)&array, &progress); + union { + vboxArray array; + IMedium *medium; + } u = { .array = VBOX_ARRAY_INITIALIZER }; + machine->vtbl->Delete(machine, 0, &u.medium, &progress); # endif if (progress != NULL) { progress->vtbl->WaitForCompletion(progress, -1);