Bug#811688: FTBFS with GCC 6: enumerator value for... is not

Martin Michlmayr tbm at hpe.com
Wed Jan 20 00:58:58 UTC 2016


Package: nestopia
Version: 1.47-1
Severity: important
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-6 gcc-6-enumerator-value

This package fails to build with GCC 6.  GCC 6 has not been released
yet, but it's expected that GCC 6 will become the default compiler for
stretch.

Note that only the first error is reported; there might be more.  You
can find a snapshot of GCC 6 in experimental.  To build with GCC 6,
you can set CC=gcc-6 CXX=g++-6 explicitly.

> sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
...
> make[2]: Entering directory '/<<PKGBUILDDIR>>'
> g++ -Wdate-time -D_FORTIFY_SOURCE=2 -DNST_PRAGMA_ONCE -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c source/core/NstApu.cpp -o objs/core/NstApu.o
> source/core/NstApu.cpp: In member function 'void Nes::Core::Apu::SaveState(Nes::Core::State::Saver&, Nes::dword) const':
> source/core/NstApu.cpp:492:6: warning: narrowing conversion of '(Nes::uint)((const Nes::Core::Apu*)this)->Nes::Core::Apu::ctrl' from 'Nes::uint {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       ctrl,
>       ^~~~
> 
> source/core/NstApu.cpp:493:12: warning: narrowing conversion of '(clock & 255u)' from 'Nes::Core::Cycle {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       clock & 0xFF,
>       ~~~~~~^~~~~~
> 
> source/core/NstApu.cpp:494:12: warning: narrowing conversion of '(clock >> 8)' from 'Nes::Core::Cycle {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       clock >> 8,
>       ~~~~~~^~~~
> 
> source/core/NstApu.cpp:495:13: warning: narrowing conversion of '(Nes::word)((const Nes::Core::Apu*)this)->Nes::Core::Apu::cycles.Nes::Core::Apu::Cycles::frameDivider' from 'Nes::word {aka short unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       cycles.frameDivider
>       ~~~~~~~^~~~~~~~~~~~
> 
> source/core/NstApu.cpp:516:12: warning: narrowing conversion of '(clock & 255u)' from 'Nes::Core::Cycle {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       clock & 0xFF,
>       ~~~~~~^~~~~~
> 
> source/core/NstApu.cpp:517:12: warning: narrowing conversion of '(clock >> 8)' from 'Nes::Core::Cycle {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       clock >> 8,
>       ~~~~~~^~~~
> 
> source/core/NstApu.cpp:518:28: warning: narrowing conversion of '(int)(((short unsigned int)((const Nes::Core::Apu*)this)->Nes::Core::Apu::cycles.Nes::Core::Apu::Cycles::frameIrqRepeat) % 3u)' from 'int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       cycles.frameIrqRepeat % 3
>       ~~~~~~~~~~~~~~~~~~~~~~^~~
> 
> source/core/NstApu.cpp: In member function 'void Nes::Core::Apu::Channel::Envelope::SaveState(Nes::Core::State::Saver&, Nes::dword) const':
> source/core/NstApu.cpp:1070:13: warning: narrowing conversion of '(((unsigned int)((int)((const Nes::Core::Apu::Channel::Envelope*)this)->Nes::Core::Apu::Channel::Envelope::regs[0])) | (((bool)((const Nes::Core::Apu::Channel::Envelope*)this)->Nes::Core::Apu::Channel::Envelope::reset) ? 128u : 0u))' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      regs[0] | (reset ? 0x80U : 0x00U),
>      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
> 
> source/core/NstApu.cpp: In member function 'void Nes::Core::Apu::Triangle::SaveState(Nes::Core::State::Saver&, Nes::dword) const':
> source/core/NstApu.cpp:1609:17: warning: narrowing conversion of '(unsigned int)(((short unsigned int)((const Nes::Core::Apu::Triangle*)this)->Nes::Core::Apu::Triangle::waveLength) & 255u)' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       waveLength & 0xFFU,
>       ~~~~~~~~~~~^~~~~~~
> 
> source/core/NstApu.cpp:1610:17: warning: narrowing conversion of '(((int)((const Nes::Core::Apu::Triangle*)this)->Nes::Core::Apu::Triangle::waveLength) >> 8)' from 'int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       waveLength >> 8,
>       ~~~~~~~~~~~^~~~
> 
> source/core/NstApu.cpp:1611:20: warning: narrowing conversion of '(((Nes::uint)((int)((const Nes::Core::Apu::Triangle*)this)->Nes::Core::Apu::Triangle::linearCounter)) | (((Nes::uint)((Nes::Core::Apu::Triangle::Status)((const Nes::Core::Apu::Triangle*)this)->Nes::Core::Apu::Triangle::status)) << 7))' from 'Nes::uint {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>       linearCounter | (uint(status) << 7),
>       ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
> 
> source/core/NstApu.cpp: In member function 'void Nes::Core::Apu::Dmc::SaveState(Nes::Core::State::Saver&, Nes::dword, const Nes::Core::Cpu&, Nes::Core::Cycle) const':
> source/core/NstApu.cpp:2020:14: warning: narrowing conversion of '(dmcClock & 255u)' from 'Nes::dword {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      dmcClock & 0xFF,
>      ~~~~~~~~~^~~~~~
> 
> source/core/NstApu.cpp:2021:14: warning: narrowing conversion of '(dmcClock >> 8)' from 'Nes::dword {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      dmcClock >> 8,
>      ~~~~~~~~~^~~~
> 
> source/core/NstApu.cpp:2025:55: warning: narrowing conversion of '((((((Nes::uint)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::regs.Nes::Core::Apu::Dmc::<anonymous struct>::ctrl) & 15u) | (((((Nes::uint)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::regs.Nes::Core::Apu::Dmc::<anonymous struct>::ctrl) & 64u) != 0u) ? 16u : 0u)) | (((((Nes::uint)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::regs.Nes::Core::Apu::Dmc::<anonymous struct>::ctrl) & 128u) != 0u) ? 32u : 0u)) | ((((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::lengthCounter) != 0) ? 64u : 0u))' from 'Nes::uint {aka unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      (
>      ~~                                                 
>       ( ( regs.ctrl & REG0_FREQUENCY  )              ) |
>       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       ( ( regs.ctrl & REG0_LOOP       ) ? 0x10U : 0U ) |
>       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       ( ( regs.ctrl & REG0_IRQ_ENABLE ) ? 0x20U : 0U ) |
>       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
>       ( ( dma.lengthCounter           ) ? 0x40U : 0U )
>       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>      ),
>      ~                                                  
> 
> source/core/NstApu.cpp:2028:30: warning: narrowing conversion of '((((unsigned int)((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::regs.Nes::Core::Apu::Dmc::<anonymous struct>::address)) - 49152u) >> 6)' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      (regs.address - 0xC000U) >> 6,
>      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
> 
> source/core/NstApu.cpp:2029:31: warning: narrowing conversion of '((((unsigned int)((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::regs.Nes::Core::Apu::Dmc::<anonymous struct>::lengthCounter)) - 1u) >> 4)' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      (regs.lengthCounter - 1U) >> 4,
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
> 
> source/core/NstApu.cpp:2030:23: warning: narrowing conversion of '(((unsigned int)(((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::address) >> 0)) & 255u)' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      (dma.address >> 0 & 0xFFU),
>      ~~~~~~~~~~~~~~~~~~^~~~~~~~
> 
> source/core/NstApu.cpp:2031:32: warning: narrowing conversion of '((((unsigned int)(((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::address) >> 8)) & 127u) | ((unsigned int)((((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::buffered) != 0) ? 128 : 0)))' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      (dma.address >> 8 & 0x7FU) | (dma.buffered ? 0x80 : 0x00),
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> source/core/NstApu.cpp:2032:23: warning: narrowing conversion of '((((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::lengthCounter) != 0) ? ((((unsigned int)((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::lengthCounter)) - 1u) >> 4) : 0u)' from 'unsigned int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      dma.lengthCounter ? (dma.lengthCounter - 1U) >> 4 : 0,
>      ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> source/core/NstApu.cpp:2033:9: warning: narrowing conversion of '(Nes::word)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::dma.Nes::Core::Apu::Dmc::<anonymous struct>::buffer' from 'Nes::word {aka short unsigned int}' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      dma.buffer,
>      ~~~~^~~~~~
> 
> source/core/NstApu.cpp:2034:7: warning: narrowing conversion of '(7 - ((int)((const Nes::Core::Apu::Dmc*)this)->Nes::Core::Apu::Dmc::out.Nes::Core::Apu::Dmc::<anonymous struct>::shifter))' from 'int' to 'Nes::byte {aka unsigned char}' inside { } [-Wnarrowing]
>      7 - out.shifter,
>      ~~^~~~~~~~~~~~~
> 
> In file included from source/core/NstAssert.hpp:29:0,
>                  from source/core/NstCpu.hpp:28,
>                  from source/core/NstApu.cpp:26:
> source/core/NstCore.hpp: In instantiation of 'long int Nes::Core::signed_shl(T, Nes::uint) [with T = int; Nes::uint = unsigned int]':
> source/core/NstApu.cpp:1150:32:   required from here
> source/core/NstCore.hpp:282:25: error: left operand of shift expression '(-7 << 1)' is negative [-fpermissive]
>     enum {NATIVE = T(-7) << 1 == -14};
>                    ~~~~~~^~~~
> 
> source/core/NstCore.hpp:282:9: error: enumerator value for 'NATIVE' is not an integer constant
>     enum {NATIVE = T(-7) << 1 == -14};
>          ^
> 
> Makefile:377: recipe for target 'objs/core/NstApu.o' failed

-- 
Martin Michlmayr
Linux for HPE Helion, Hewlett Packard Enterprise



More information about the Pkg-games-devel mailing list