[PATCH] dev-uas: Fix a error of variable sized type not at end

Han Han posted 1 patch 5 years ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201111064737.576673-1-hhan@redhat.com
Maintainers: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/dev-uas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] dev-uas: Fix a error of variable sized type not at end
Posted by Han Han 5 years ago
Fix the following error when compiling:

FAILED: libcommon.fa.p/hw_usb_dev-uas.c.o
clang -Ilibcommon.fa.p -I. -I.. -Iqapi -Itrace -Iui -Iui/shader -I/usr/include/libusb-1.0 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -I/usr/include/vte-2.91 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/gtk-3.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -I/usr/include/SDL2 -I/usr/include/slirp -I/usr/include/virgl -I/usr/include/capstone -Xclang -fcolor-diagnostics -pipe -Wall -Winvalid-pch -Werror -std=gnu99 -O2 -g -fsanitize=undefined -fsanitize=address -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -Wno-psabi -fstack-protector-strong -fsanitize=fuzzer-no-link -isystem /home/hhan/Software/qemu/linux-headers -isystem linux-headers -iquote /home/hhan/Software/qemu/tcg/i386 -iquote . -iquote /home/hhan/Software/qemu -iquote /home/hhan/Software/qemu/accel/tcg -iquote /home/hhan/Software/qemu/include -iquote /home/hhan/Software/qemu/disas/libvixl -pthread -fPIC -DSTRUCT_IOVEC_DEFINED -D_REENTRANT -Wno-undef -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNCURSES_WIDECHAR -MD -MQ libcommon.fa.p/hw_usb_dev-uas.c.o -MF libcommon.fa.p/hw_usb_dev-uas.c.o.d -o libcommon.fa.p/hw_usb_dev-uas.c.o -c ../hw/usb/dev-uas.c
../hw/usb/dev-uas.c:158:31: error: field 'status' with variable sized type 'uas_iu' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]

Signed-off-by: Han Han <hhan@redhat.com>
---
 hw/usb/dev-uas.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
index cec071d96c..5ef3f4fec9 100644
--- a/hw/usb/dev-uas.c
+++ b/hw/usb/dev-uas.c
@@ -154,9 +154,9 @@ struct UASRequest {
 
 struct UASStatus {
     uint32_t                  stream;
-    uas_iu                    status;
     uint32_t                  length;
     QTAILQ_ENTRY(UASStatus)   next;
+    uas_iu                    status;
 };
 
 /* --------------------------------------------------------------------- */
-- 
2.28.0


Re: [PATCH] dev-uas: Fix a error of variable sized type not at end
Posted by Philippe Mathieu-Daudé 5 years ago
Hi Han,

On 11/11/20 7:47 AM, Han Han wrote:
> Fix the following error when compiling:
> 
> FAILED: libcommon.fa.p/hw_usb_dev-uas.c.o
> clang -Ilibcommon.fa.p -I. -I.. -Iqapi -Itrace -Iui -Iui/shader -I/usr/include/libusb-1.0 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -I/usr/include/vte-2.91 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/gtk-3.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -I/usr/include/SDL2 -I/usr/include/slirp -I/usr/include/virgl -I/usr/include/capstone -Xclang -fcolor-diagnostics -pipe -Wall -Winvalid-pch -Werror -std=gnu99 -O2 -g -fsanitize=undefined -fsanitize=address -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -Wno-psabi -fstack-protector-strong -fsanitize=fuzzer-no-link -isystem /home/hhan/Software/qemu/linux-headers -isystem linux-headers -iquote /home/hhan/Software/qemu/tcg/i386 -iquote . -iquote /home/hhan/Software/qemu -iquote /home/hhan/Software/qemu/accel/tcg -iquote /home/hhan/Software/qemu/include -iquote /home/hhan/Software/qemu/disas/libvixl -pthread -fPIC -DSTRUCT_IOVEC_DEFINED -D_REENTRANT -Wno-undef -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNCURSES_WIDECHAR -MD -MQ libcommon.fa.p/hw_usb_dev-uas.c.o -MF libcommon.fa.p/hw_usb_dev-uas.c.o.d -o libcommon.fa.p/hw_usb_dev-uas.c.o -c ../hw/usb/dev-uas.c
> ../hw/usb/dev-uas.c:158:31: error: field 'status' with variable sized type 'uas_iu' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
> 
> Signed-off-by: Han Han <hhan@redhat.com>
> ---
>  hw/usb/dev-uas.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
> index cec071d96c..5ef3f4fec9 100644
> --- a/hw/usb/dev-uas.c
> +++ b/hw/usb/dev-uas.c
> @@ -154,9 +154,9 @@ struct UASRequest {
>  
>  struct UASStatus {
>      uint32_t                  stream;
> -    uas_iu                    status;
>      uint32_t                  length;
>      QTAILQ_ENTRY(UASStatus)   next;
> +    uas_iu                    status;
>  };
>  
>  /* --------------------------------------------------------------------- */
> 

Daniele already sent a patch for this issue:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg757940.html