On Wed, May 1, 2019 at 2:40 AM Daniel P. Berrangé <berra...@redhat.com> wrote: > > On Tue, Apr 30, 2019 at 11:28:41PM +0000, Alistair Francis wrote: > > Fix this warning with GCC 9 on Fedora 30: > > hw/usb/dev-mtp.c:1715:36: error: taking address of packed member of ‘struct > > <anonymous>’ may result in an unaligned pointer value > > [-Werror=address-of-packed-member] > > 1715 | dataset->filename); > > | ~~~~~~~^~~~~~~~~~ > > > > Signed-off-by: Alistair Francis <alistair.fran...@wdc.com> > > --- > > hw/usb/dev-mtp.c | 13 +++++++++++++ > > 1 file changed, 13 insertions(+) > > > > diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c > > index 99548b012d..8233beacab 100644 > > --- a/hw/usb/dev-mtp.c > > +++ b/hw/usb/dev-mtp.c > > @@ -1711,9 +1711,22 @@ static void usb_mtp_write_metadata(MTPState *s, > > uint64_t dlen) > > assert(!s->write_pending); > > assert(p != NULL); > > > > +/* > > + * We are about to access a packed struct. We are confident that the > > pointer > > + * address won't be unaligned, so we ignore GCC warnings. > > + */ > > The data is mis-aligned as we're accessing an int16 array that > is immediately following an int8 field in a packed struct > > This problem is fixed by the following series which Gerd has in the > USB queue: > > https://lists.gnu.org/archive/html/qemu-devel/2019-04/msg02524.html
Great, that fixes the build issues. Dropping this patch. Alistair > > > +#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && QEMU_GNUC_PREREQ(9, 0) > > +#pragma GCC diagnostic push > > +#pragma GCC diagnostic ignored "-Waddress-of-packed-member" > > +#endif > > + > > filename = utf16_to_str(MIN(dataset->length, filename_chars), > > dataset->filename); > > > > +#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && QEMU_GNUC_PREREQ(9, 0) > > +#pragma GCC diagnostic pop > > +#endif > > + > > if (strchr(filename, '/')) { > > usb_mtp_queue_result(s, RES_PARAMETER_NOT_SUPPORTED, d->trans, > > 0, 0, 0, 0); > > 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 :|