[PATCH] dlls/windows.globalization: don't allocate a partial structure
Rémi Bernon
rbernon at codeweavers.com
Wed Mar 23 13:40:33 CDT 2022
On 3/23/22 14:05, Eric Pouech wrote:
>
>> Well I think this makes the code very bloated, and if it is truly UB
>> then we should instead find a way to use 0-sized arrays in a portable
>> way.
>>
>> I believe 0 sized array for the last struct member is standard C99, so
>> is there any compiler not supporting it yet (or some variation of it
>> like with empty size)?
>
> yes the so called "flexible array member" is c99 and seems to be
> supported by gcc, clang, msvc
>
> but they don't seem to be accepted directly into wine (for now) (for
> example include/winnt.h see
> https://source.winehq.org/source/include/winnt.h#5815)
>
> (there are a few others instances in the same way)
>
>
> there are a couple of 0-length array instances (mosts of them protected
> by #ifdef _GNUC and fallback with 1 length array)
>
> (and wine/msvcpdb.h uses them directly w/o fallbacks...)
>
>
> I did a previous attempt with 0 length array for this but it never
> landed
> (https://www.winehq.org/pipermail/wine-devel/2022-February/207793.html)
>
>
> so I'd wait for Alexandre's guidance on this
>
> A+
>
C99 flexible array is with empty size, not 0.
From https://gcc.godbolt.org/z/nc6xGM5nh I don't see any compiler not
supporting even both methods, though -pedantic emits a warning with 0
size (empty size is fine).
It only tests some old GCC / Clang version as they don't provide old
MSVC but maybe it's okay?
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list