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 - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913