[vlc-devel] [PATCH 1/2] chroma: copy: do not use an empty structure if SSE2 is not supported
    Steve Lhomme 
    robux4 at ycbcr.xyz
       
    Fri May  3 08:04:45 CEST 2019
    
    
  
On 5/2/2019 4:56 PM, Rémi Denis-Courmont wrote:
> Le torstaina 2. toukokuuta 2019, 12.36.29 EEST Steve Lhomme a écrit :
>> Structures with no field should not be used, it's Undefined Behavior:
>> https://stackoverflow.com/questions/3849334/sizeof-empty-structure-is-0-in-c
>> -and-1-in-c-why ---
>>   modules/video_chroma/copy.h | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/modules/video_chroma/copy.h b/modules/video_chroma/copy.h
>> index 6c463226f1..b06dc680cc 100644
>> --- a/modules/video_chroma/copy.h
>> +++ b/modules/video_chroma/copy.h
>> @@ -29,6 +29,8 @@ typedef struct {
>>   # ifdef CAN_COMPILE_SSE2
>>       uint8_t *buffer;
>>       size_t  size;
>> +# else
>> +    char dummy;
>>   # endif
>>   } copy_cache_t;
> Better to move the whole structure at all under the ifdef, IMO.
That means all the copy_cache_t API calls also have to put around that 
ifdef. And meaning if we support it on more architecture (ARM for 
example) all the code has to be updated accordingly. IMO this simple fix 
is safer for now.
    
    
More information about the vlc-devel
mailing list