twx-linux/include/uapi
Alexey Dobriyan 32a4ec211d uapi: stddef.h: Fix __DECLARE_FLEX_ARRAY for C++
__DECLARE_FLEX_ARRAY(T, member) macro expands to

	struct {
		struct {} __empty_member;
		T member[];
	};

which is subtly wrong in C++ because sizeof(struct{}) is 1 not 0,
changing UAPI structures layouts.

This can be fixed by expanding to

	T member[];

Now g++ doesn't like "T member[]" either, throwing errors on
the following code:

	struct S {
		union {
			T1 member1[];
			T2 member2[];
		};
	};

or

	struct S {
		T member[];
	};

Use "T member[0];" which seems to work and does the right thing wrt
structure layout.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Fixes: 3080ea5553cc ("stddef: Introduce DECLARE_FLEX_ARRAY() helper")
Link: https://lore.kernel.org/r/97242381-f1ec-4a4a-9472-1a464f575657@p183
Signed-off-by: Kees Cook <keescook@chromium.org>
2023-09-13 20:09:49 -07:00
..
asm-generic asm-generic updates for 6.5 2023-07-06 10:06:04 -07:00
drm Merge tag 'amd-drm-next-6.5-2023-06-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2023-06-15 14:11:22 +10:00
linux uapi: stddef.h: Fix __DECLARE_FLEX_ARRAY for C++ 2023-09-13 20:09:49 -07:00
misc
mtd
rdma RDMA/bnxt_re: Enable low latency push 2023-06-21 14:13:17 -03:00
scsi scsi: ufs: core: Add support for qTimestamp attribute 2023-07-05 21:44:07 -04:00
sound Merge branch 'for-next' into for-linus 2023-06-26 15:23:23 +02:00
video
xen
Kbuild