[vlc-devel] [PATCH] contrib: sidplay2: fix signed char stored as int8_t

Steve Lhomme robux4 at ycbcr.xyz
Thu Jan 9 13:07:12 CET 2020


On 2020-01-09 12:56, Martin Storsjö wrote:
> On Thu, 9 Jan 2020, Steve Lhomme wrote:
> 
>> This is the error I get:
>>
>> /bin/bash ../../libtool  --tag=CXX   --mode=compile 
>> arm-linux-gnueabihf-g++ -DHAVE_CONFIG_H 
>> -I/mnt/c/Users/robux/Documents/Programs/Videolabs/build/rasp/contrib/arm-linux-gnueabihf/include 
>>
>> -I/mnt/c/Users/robux/Documents/Programs/Videolabs/build/rasp/contrib/arm-linux-gnueabihf/include 
>>
>>  -g -O2 -DHAVE_UNIX -I../../include -I../../include/sidplay -c -o 
>> xsid.lo xsid.cpp
>> libtool: compile:  arm-linux-gnueabihf-g++ -DHAVE_CONFIG_H 
>> -I/mnt/c/Users/robux/Documents/Programs/Videolabs/build/rasp/contrib/arm-linux-gnueabihf/include 
>> -I/mnt/c/Users/robux/Documents/Programs/Videolabs/build/rasp/contrib/arm-linux-gnueabihf/include 
>> -g -O2 -DHAVE_UNIX -I../../include -I../../include/sidplay -c xsid.cpp 
>> -fPIC -DPIC -o xsid.o
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\200'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>>   101 | };
>>       | ^
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\224'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\251'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\274'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\316'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\341'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>> xsid.cpp:101:1: error: narrowing conversion of ‘'\362'’ from ‘char’ to 
>> ‘int8_t’ {aka ‘signed char’} [-Wnarrowing]
>> make[4]: *** [Makefile:409: xsid.lo] Error 1
> 
> Ok, right, well as the current data type is int8_t, I would expect that 
> it actually will behave totally differently if you suddenly make it an 
> unsigned data type. (On ARM linux, unqualified char is unsigned.)
> 
> The best bet here would simply be to rewrite the table to use proper 
> negative values (or an (int8_t) cast on each of them); as it's only 16 
> values, it should be pretty doable.

Indeed. That sounds better.


More information about the vlc-devel mailing list