On 01/20/2016 02:58 AM, Martin Michlmayr wrote:
>> src/blitter.cpp: In function 'void ADDRADD(int16_t&, int16_t&, bool,
>> uint16_t, uint16_t, uint16_t, uint16_t, uint8_t, bool, bool)':
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65535' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> int16_t mask[8] = { 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF0, 0xFFE0,
>> 0xFFC0, 0x0000 };
>>
>> ^
>>
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65534' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65532' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65528' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65520' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65504' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> src/blitter.cpp:5391:85: error: narrowing conversion of '65472' from 'int'
>> to 'int16_t {aka short int}' inside { } [-Wnarrowing]
>> jaguarcore.mak:99: recipe for target 'obj/blitter.o' failed
>> make[2]: *** [obj/blitter.o] Error 1
That is odd, frankly.
Looking at the source code:
int16 mask[8] = { 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF0, 0xFFE0,
0xFFC0, 0x0000 };
The array is being filled up with constants and gcc-6 is somehow
insisting that these constants are 'int' instead of 'int16' even
though those numbers fit perfectly into 16-bit.
Does gcc-6 require explicit casts for _all_ constants now unless the
lvalue is declared as 'int'? What about 'unsigned char = 128', would
that now trigger a compiler error as well?
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - [email protected]
`. `' Freie Universitaet Berlin - [email protected]
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913