Package: mgen
Version: 5.02+dfsg2-3
Severity: important
User: [email protected]
Usertags: ftbfs-gcc-6 gcc-6-cannot-convert

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
...
> 
> g++ -c -g -DPROTO_DEBUG -D_RAPR_JOURNAL -DHAVE_GPS -DUNIX -Wall -Wcast-align 
> -pedantic -fPIC -DLINUX -DHAVE_PSELECT -DHAVE_SCHED -DHAVE_IPV6 
> -DHAVE_GETLOGIN -DHAVE_LOCKF -DHAVE_DIRFD -DHAVE_ASSERT  -I/usr/X11R6/include 
>  -I../makefiles -I../include -I../protolib/include -g -O2 -fPIE 
> -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time 
> -D_FORTIFY_SOURCE=2 -o ../src/common/mgen.o ../src/common/mgen.cpp
> In file included from ../protolib/include/protoSocket.h:4:0,
>                  from ../protolib/include/protokit.h:6,
>                  from ../include/mgen.h:4,
>                  from ../src/common/mgen.cpp:3:
> ../protolib/include/protoAddress.h: In member function 'const sockaddr& 
> ProtoAddress::GetSockAddr() const':
> ../protolib/include/protoAddress.h:142:46: warning: dereferencing type-punned 
> pointer will break strict-aliasing rules [-Wstrict-aliasing]
>              {return ((const struct sockaddr&)addr);}
>                                               ^~~~
> 
> ../protolib/include/protoAddress.h: In member function 'sockaddr& 
> ProtoAddress::AccessSockAddr()':
> ../protolib/include/protoAddress.h:149:40: warning: dereferencing type-punned 
> pointer will break strict-aliasing rules [-Wstrict-aliasing]
>              {return ((struct sockaddr&)addr);}
>                                         ^~~~
> 
> ../src/common/mgen.cpp: In member function 'MgenTransport* 
> Mgen::JoinGroup(const ProtoAddress&, const char*, UINT16)':
> ../src/common/mgen.cpp:275:20: error: cannot convert 'bool' to 
> 'MgenTransport*' in return
>              return false;
>                     ^~~~~
> 
> ../src/common/mgen.cpp: In member function 'MgenTransport* 
> Mgen::FindMgenTransport(Protocol, UINT16, const ProtoAddress&, bool, 
> MgenTransport*)':
> ../src/common/mgen.cpp:335:40: warning: suggest parentheses around '&&' 
> within '||' [-Wparentheses]
>          if ((next->GetProtocol() == theProtocol) &&
>              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>              (next->srcPort == srcPort) &&
>              ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
>  
>                                          
>              // ignore events && unconnected udp sockets
>              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>              // have invalid addrs and should match
>              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>              (((!dstAddress.IsValid() &&
>              ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>          !next->dstAddress.IsValid()) && theProtocol == UDP)
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        ||
>        ~~                                
>        // For tcp ignore events we want to close the
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        // listening socket too which won't have a dst address
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        (theProtocol == TCP && !dstAddress.IsValid())
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>               ||
>               ~~                         
>               (dstAddress.IsValid() &&
>               ~~~~~~~~~~~~~~~~~~~~~~~~   
>                next->dstAddress.IsEqual(dstAddress)))
>                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Makefile.common:30: recipe for target '../src/common/mgen.o' failed
> make[2]: *** [../src/common/mgen.o] Error 1

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

Reply via email to