=>> Building net/bird3 build started at Tue Dec 16 15:39:26 EST 2025 port directory: /usr/ports/net/bird3 package name: bird3-3.1.5 building for: FreeBSD pkg.DaveG.ca 14.3-RELEASE-p1 FreeBSD 14.3-RELEASE-p1 1403000 amd64 maintained by: olivier@FreeBSD.org Makefile datestamp: -rw-r--r-- 1 root wheel 1485 Dec 13 21:11 /usr/ports/net/bird3/Makefile Ports top last git commit: 10f7dee57a4c Ports top unclean checkout: no Port dir last git commit: 01152f95b154 Port dir unclean checkout: no Poudriere version: poudriere-git-3.4.2 Host OSVERSION: 1500068 Jail OSVERSION: 1403000 Job Id: 02 ---Begin Environment--- SHELL=/bin/sh OSVERSION=1403000 UNAME_v=FreeBSD 14.3-RELEASE-p1 1403000 UNAME_r=14.3-RELEASE-p1 BLOCKSIZE=K MAIL=/var/mail/root MM_CHARSET=UTF-8 LANG=C.UTF-8 STATUS=1 HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin MAKE_OBJDIR_CHECK_WRITABLE=0 LOCALBASE=/usr/local USER=root POUDRIERE_NAME=poudriere-git LIBEXECPREFIX=/usr/local/libexec/poudriere POUDRIERE_VERSION=3.4.2 MASTERMNT=/usr/local/poudriere/data/.m/freebsd_14_3_x64-HEAD-ALL/ref LC_COLLATE=C POUDRIERE_BUILD_TYPE=bulk PACKAGE_BUILDING=yes SAVED_TERM=tmux-256color OUTPUT_REDIRECTED_STDERR=4 OUTPUT_REDIRECTED=1 PWD=/usr/local/poudriere/data/.m/freebsd_14_3_x64-HEAD-ALL/02/.p OUTPUT_REDIRECTED_STDOUT=3 P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS MASTERNAME=freebsd_14_3_x64-HEAD-ALL SCRIPTPREFIX=/usr/local/share/poudriere SCRIPTNAME=bulk.sh OLDPWD=/usr/local/poudriere/data/.m/freebsd_14_3_x64-HEAD-ALL/ref/.p/pool POUDRIERE_PKGNAME=poudriere-git-3.4.2 SCRIPTPATH=/usr/local/share/poudriere/bulk.sh POUDRIEREPATH=/usr/local/bin/poudriere ---End Environment--- ---Begin Poudriere Port Flags/Env--- PORT_FLAGS= PKGENV= FLAVOR= MAKE_ARGS= ---End Poudriere Port Flags/Env--- ---Begin OPTIONS List--- ===> The following configuration options are available for bird3-3.1.5: ====> Routing Protocols: you have to choose at least one of them BFD=on: Bidirectional Forwarding Detection BABEL=on: Babel routing protocol BMP=off: BGP Monitoring Protocol BGP=on: Border Gateway Protocol MRT=on: Dumping Routing Information in MRT Format OSPF=on: Open Short Path First PIPE=on: PIPE routing RADV=on: Router Advertisement RIP=on: Routing Information Protocol RPKI=on: Resource Public Key Infrastructure STATIC=on: Static routing ===> Use 'make config' to modify these settings ---End OPTIONS List--- --MAINTAINER-- olivier@FreeBSD.org --End MAINTAINER-- --CONFIGURE_ARGS-- --localstatedir=/var --with-protocols="babel bfd bgp mrt ospf pipe radv rip rpki static" --with-sysconfig=bsd-netlink --prefix=/usr/local ${_LATE_CONFIGURE_ARGS} --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- MAKE=/usr/local/bin/gmake XDG_DATA_HOME=/wrkdirs/usr/ports/net/bird3/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net/bird3/work XDG_CACHE_HOME=/wrkdirs/usr/ports/net/bird3/work/.cache HOME=/wrkdirs/usr/ports/net/bird3/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/net/bird3/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/net/bird3/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=524288 --End CONFIGURE_ENV-- --MAKE_ENV-- XDG_DATA_HOME=/wrkdirs/usr/ports/net/bird3/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net/bird3/work XDG_CACHE_HOME=/wrkdirs/usr/ports/net/bird3/work/.cache HOME=/wrkdirs/usr/ports/net/bird3/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/net/bird3/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/net/bird3/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local CC="cc" CFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=gnu99 " CPP="cpp" CPPFLAGS="-I/usr/local/include" LDFLAGS=" -L/usr/local/lib " LIBS="" CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " CSTD=gnu99 BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- OSREL=14.3 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/bird" EXAMPLESDIR="share/examples/bird" DATADIR="share/bird" WWWDIR="www/bird" ETCDIR="etc/bird" --End PLIST_SUB-- --SUB_LIST-- PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/bird DOCSDIR=/usr/local/share/doc/bird EXAMPLESDIR=/usr/local/share/examples/bird WWWDIR=/usr/local/www/bird ETCDIR=/usr/local/etc/bird --End SUB_LIST-- ---Begin make.conf--- DEFAULT_VERSIONS+=pgsql=15 DEFAULT_VERSIONS+=php=82 DISABLE_LICENSES=yes SELECTED_OPTIONS+=OPENBLAS ARCHDEF=AMD64K10h64SSE3 USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles FORCE_PACKAGE=yes PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes #### #### DEFAULT_VERSIONS+=pgsql=15 DEFAULT_VERSIONS+=php=82 DISABLE_LICENSES=yes SELECTED_OPTIONS+=OPENBLAS ARCHDEF=AMD64K10h64SSE3 WITH_CCACHE_BUILD=yes CCACHE_DIR=/root/.ccache #### Misc Poudriere #### .include "/etc/make.conf.ports_env" GID=0 UID=0 ---End make.conf--- --Resource limits-- cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) 33554432 stack size (kbytes, -s) 524288 core file size (512-blocks, -c) unlimited max memory size (kbytes, -m) unlimited locked memory (kbytes, -l) unlimited max user processes (-u) 89999 open files (-n) 8192 virtual mem size (kbytes, -v) unlimited swap limit (kbytes, -w) unlimited socket buffer size (bytes, -b) unlimited pseudo-terminals (-p) unlimited kqueues (-k) unlimited umtx shared locks (-o) unlimited pipebuf (-y) unlimited --End resource limits-- =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> bird3-3.1.5 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-2.4.2_1.pkg [pkg.DaveG.ca] Installing pkg-2.4.2_1... [pkg.DaveG.ca] Extracting pkg-2.4.2_1: .......... done ===> bird3-3.1.5 depends on file: /usr/local/sbin/pkg - found ===> Returning to build of bird3-3.1.5 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 => bird-3.1.5.tar.gz doesn't seem to exist in /portdistfiles. => Attempting to fetch https://bird.nic.cz/download/bird-3.1.5.tar.gz bird-3.1.5.tar.gz 2680 kB 746 kBps 04s ===> Fetching all distfiles required by bird3-3.1.5 for building =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Fetching all distfiles required by bird3-3.1.5 for building => SHA256 Checksum OK for bird-3.1.5.tar.gz. =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Fetching all distfiles required by bird3-3.1.5 for building ===> Extracting for bird3-3.1.5 => SHA256 Checksum OK for bird-3.1.5.tar.gz. =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Patching for bird3-3.1.5 ===> Applying FreeBSD patches for bird3-3.1.5 from /usr/ports/net/bird3/files =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> bird3-3.1.5 depends on executable: bison - not found ===> Installing existing package /packages/All/bison-3.8.2_2,1.pkg [pkg.DaveG.ca] Installing bison-3.8.2_2,1... [pkg.DaveG.ca] `-- Installing gettext-runtime-0.23.1... [pkg.DaveG.ca] | `-- Installing indexinfo-0.3.1_1... [pkg.DaveG.ca] | `-- Extracting indexinfo-0.3.1_1: . done [pkg.DaveG.ca] `-- Extracting gettext-runtime-0.23.1: .......... done [pkg.DaveG.ca] `-- Installing libtextstyle-0.23.1... [pkg.DaveG.ca] `-- Extracting libtextstyle-0.23.1: .......... done [pkg.DaveG.ca] `-- Installing m4-1.4.20,1... [pkg.DaveG.ca] `-- Extracting m4-1.4.20,1: .......... done [pkg.DaveG.ca] Extracting bison-3.8.2_2,1: .......... done ===> bird3-3.1.5 depends on executable: bison - found ===> Returning to build of bird3-3.1.5 ===> bird3-3.1.5 depends on package: gmake>=4.4.1 - not found ===> Installing existing package /packages/All/gmake-4.4.1.pkg [pkg.DaveG.ca] Installing gmake-4.4.1... [pkg.DaveG.ca] Extracting gmake-4.4.1: .......... done ===> bird3-3.1.5 depends on package: gmake>=4.4.1 - found ===> Returning to build of bird3-3.1.5 ===> bird3-3.1.5 depends on file: /usr/local/bin/ccache - not found ===> Installing existing package /packages/All/ccache-3.7.12_8.pkg [pkg.DaveG.ca] Installing ccache-3.7.12_8... [pkg.DaveG.ca] Extracting ccache-3.7.12_8: ......... done Create compiler links... create symlink for cc create symlink for cc (world) create symlink for c++ create symlink for c++ (world) create symlink for CC create symlink for CC (world) create symlink for clang create symlink for clang (world) create symlink for clang++ create symlink for clang++ (world) ===== Message from ccache-3.7.12_8: -- NOTE: Please read /usr/local/share/doc/ccache/ccache-howto-freebsd.txt for information on using ccache with FreeBSD ports and src. ===> bird3-3.1.5 depends on file: /usr/local/bin/ccache - found ===> Returning to build of bird3-3.1.5 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> bird3-3.1.5 depends on shared library: libssh.so - not found ===> Installing existing package /packages/All/libssh-0.11.3.pkg [pkg.DaveG.ca] Installing libssh-0.11.3... [pkg.DaveG.ca] Extracting libssh-0.11.3: .......... done ===> bird3-3.1.5 depends on shared library: libssh.so - found (/usr/local/lib/libssh.so) ===> Returning to build of bird3-3.1.5 ===> bird3-3.1.5 depends on shared library: libreadline.so.8 - not found ===> Installing existing package /packages/All/readline-8.3.1.pkg [pkg.DaveG.ca] Installing readline-8.3.1... [pkg.DaveG.ca] Extracting readline-8.3.1: .......... done ===> bird3-3.1.5 depends on shared library: libreadline.so.8 - found (/usr/local/lib/libreadline.so.8) ===> Returning to build of bird3-3.1.5 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Configuring for bird3-3.1.5 configure: loading site script /usr/ports/Templates/config.site checking for gcc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether cc accepts -g... yes checking for cc option to enable C11 features... unsupported checking for cc option to enable C99 features... none needed checking for library containing clock_gettime... none required checking build system type... amd64-portbld-freebsd14.3 checking host system type... amd64-portbld-freebsd14.3 checking for gcc... (cached) cc checking whether the compiler supports GNU C... (cached) yes checking whether cc accepts -g... (cached) yes checking for cc option to enable C11 features... (cached) unsupported checking for cc option to enable C99 features... (cached) none needed checking which compiler vendor we are dealing with... llvm checking whether _Thread_local is known... yes checking whether POSIX threads are available... yes checking CFLAGS... -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=gnu99 -pthread -fno-strict-aliasing -fno-strict-overflow checking LDFLAGS... -L/usr/local/lib -pthread checking how to run the C preprocessor... cpp checking for a BSD-compatible install... /usr/bin/install -c checking for ranlib... ranlib checking for flex... flex checking for bison... bison checking for gm4... gm4 checking for pandoc... no checking bison version... 3.8.2 checking which OS configuration should we use... ./sysdep/cf/bsd-netlink.h checking system-dependent directories... sysdep/unix sysdep/bsd-netlink checking for libssh/libssh.h... yes checking for ssh_connect in -lssh... yes checking for ssh_session_is_known_server in -lssh... yes checking for Linux MPLS headers... no checking for CLOCK_MONOTONIC... yes checking for CLOCK_MONOTONIC_COARSE... yes checking protocols... ok checking for stdio.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for strings.h... (cached) yes checking for sys/stat.h... (cached) yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for alloca.h... (cached) no checking for syslog.h... yes checking for stdatomic.h... yes checking for sys/mman.h... (cached) yes checking for aligned_alloc... yes checking for mallopt... no checking for struct sockaddr.sa_len... yes checking whether byte ordering is bigendian... no checking how pointers are aligned... 8 checking for glob.h... yes checking for syslog lib flags... yes checking for getrandom... yes checking for getentropy... yes checking for curses.h... yes checking for library containing tgetent... -ltinfo checking for readline/readline.h... yes checking for readline/history.h... yes checking for library containing rl_callback_read_char... -lreadline checking for rl_crlf in -lreadline... yes checking for rl_ding in -lreadline... yes configure: creating ./config.status config.status: creating Makefile config.status: creating obj/sysdep/autoconf.h BIRD was configured with the following options: Source directory: . Object directory: obj Iproute2 directory: System configuration: ./sysdep/cf/bsd-netlink.h Debugging: no Link-time optimization: auto Compact tries: no Routing protocols: babel bfd bgp mrt ospf pipe radv rip rpki static LibSSH support in RPKI: yes Kernel MPLS support: no Client: yes =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Building for bird3-3.1.5 MKDIR -p obj/client obj/conf obj/doc obj/filter obj/lib obj/nest obj/test obj/proto/babel obj/proto/bfd obj/proto/bgp obj/proto/mrt obj/proto/ospf obj/proto/pipe obj/proto/radv obj/proto/rip obj/proto/rpki obj/proto/static obj/sysdep/unix obj/sysdep/bsd-netlink obj/doc gm4 -s -P conf/gen_parser.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y nest/mpls.Y proto/babel/config.Y proto/bfd/config.Y proto/bgp/config.Y proto/mrt/config.Y proto/ospf/config.Y proto/pipe/config.Y proto/radv/config.Y proto/rip/config.Y proto/rpki/config.Y proto/static/config.Y sysdep/unix/config.Y sysdep/unix/krt.Y sysdep/bsd-netlink/netlink.Y >obj/conf/cf-parse.y bison -Dparse.lac=full -Dparse.error=verbose -dv -pcf_ -b obj/conf/cf-parse obj/conf/cf-parse.y obj/conf/cf-parse.y: warning: 1 nonterminal useless in grammar [-Wother] obj/conf/cf-parse.y: warning: 2 rules useless in grammar [-Wother] filter/config.Y:761.1-8: warning: nonterminal useless in grammar: ec_items [-Wother] 761 | ec_items: | ^~~~~~~~ obj/conf/cf-parse.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] obj/conf/cf-parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples gm4 -s -P conf/gen_keywords.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y nest/mpls.Y proto/babel/config.Y proto/bfd/config.Y proto/bgp/config.Y proto/mrt/config.Y proto/ospf/config.Y proto/pipe/config.Y proto/radv/config.Y proto/rip/config.Y proto/rpki/config.Y proto/static/config.Y sysdep/unix/config.Y sysdep/unix/krt.Y sysdep/bsd-netlink/netlink.Y >obj/conf/keywords.h gm4 -s -P conf/gen_commands.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y nest/mpls.Y proto/babel/config.Y proto/bfd/config.Y proto/bgp/config.Y proto/mrt/config.Y proto/ospf/config.Y proto/pipe/config.Y proto/radv/config.Y proto/rip/config.Y proto/rpki/config.Y proto/static/config.Y sysdep/unix/config.Y sysdep/unix/krt.Y sysdep/bsd-netlink/netlink.Y >obj/conf/commands.h gm4 -s -DTARGET=I -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-interpret.c gm4 -s -DTARGET=H -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.h GEN obj/nest/proto-build.c GEN obj/sysdep/paths.h CC -o obj/conf/cf-parse.tab.o -c obj/conf/cf-parse.tab.c In file included from conf/confbase.Y:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:14: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:14: In file included from ./conf/conf.h:17: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/confbase.Y:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/confbase.Y:23: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/confbase.Y:24: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/config.Y:10: In file included from ./proto/bfd/bfd.h:63: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/config.Y:10: In file included from ./proto/bfd/bfd.h:111: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/config.Y:502:29: warning: assigning to 'const byte *' (aka 'const unsigned char *') from 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 502 | { this_ipn->pattern = (yyvsp[0].t); /* this_ipn->prefix stays zero */ } | ^ ~~~~~~~~~~~~ nest/config.Y:503:43: warning: assigning to 'const byte *' (aka 'const unsigned char *') from 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 503 | { this_ipn->pattern = (yyvsp[-1].t); this_ipn->prefix = (yyvsp[0].net); } | ^ ~~~~~~~~~~~~~ proto/babel/config.Y:193:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 193 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_interfaces(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:193:3: note: place parentheses around the assignment to silence this warning 193 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_interfaces(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:193:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:196:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 196 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_neighbors(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:196:3: note: place parentheses around the assignment to silence this warning 196 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_neighbors(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:196:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:199:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 199 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_entries(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:199:3: note: place parentheses around the assignment to silence this warning 199 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_entries(p); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:199:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:202:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 202 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_routes(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:202:3: note: place parentheses around the assignment to silence this warning 202 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_routes(p); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/babel/config.Y:202:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/bfd/config.Y:46:26: warning: passing 'char[8]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 46 | struct symbol *sym = cf_find_symbol(new_config, "express"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./conf/conf.h:271:16: note: expanded from macro 'cf_find_symbol' 271 | )((where), (what)) | ^~~~~~ ./conf/conf.h:265:87: note: passing argument to parameter 'c' here 265 | static inline struct symbol *cf_find_symbol_cfg(const struct config *cfg, const byte *c) | ^ proto/bfd/config.Y:246:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 246 | { PROTO_WALK_CMD((yyvsp[-1].bssc)->name, &proto_bfd, p) bfd_show_sessions(p, (yyvsp[-1].bssc)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bfd/config.Y:246:3: note: place parentheses around the assignment to silence this warning 246 | { PROTO_WALK_CMD((yyvsp[-1].bssc)->name, &proto_bfd, p) bfd_show_sessions(p, (yyvsp[-1].bssc)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/bfd/config.Y:246:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/bgp/config.Y:307:29: warning: assigning to 'const char *' from 'const byte[0]' (aka 'const unsigned char[0]') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 307 | this_ao_key->key.key = (yyvsp[-1].v).val.bs->data; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:510:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 510 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_ospf, p) ospf_sh(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:510:3: note: place parentheses around the assignment to silence this warning 510 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_ospf, p) ospf_sh(p); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/ospf/config.Y:510:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/ospf/config.Y:513:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 513 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_neigh(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:513:3: note: place parentheses around the assignment to silence this warning 513 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_neigh(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/ospf/config.Y:513:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/ospf/config.Y:516:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 516 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_iface(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:516:3: note: place parentheses around the assignment to silence this warning 516 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_iface(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/ospf/config.Y:516:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/rip/config.Y:196:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 196 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_interfaces(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/rip/config.Y:196:3: note: place parentheses around the assignment to silence this warning 196 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_interfaces(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/rip/config.Y:196:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/rip/config.Y:199:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 199 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_neighbors(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/rip/config.Y:199:3: note: place parentheses around the assignment to silence this warning 199 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_neighbors(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/rip/config.Y:199:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/static/config.Y:204:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 204 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_static, p) static_show(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/static/config.Y:204:3: note: place parentheses around the assignment to silence this warning 204 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_static, p) static_show(p); } | ^ | ( ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ proto/static/config.Y:204:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:283:64: note: expanded from macro 'PROTO_WALK_CMD' 283 | #define PROTO_WALK_CMD(sym,pr,p) for(struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) | ^ 39 warnings generated. flex -f -s -B -8 -Pcf_ -oobj/conf/cf-lex.c conf/cf-lex.l CC -o obj/conf/cf-lex.o -c obj/conf/cf-lex.c In file included from conf/cf-lex.l:44: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:45: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/cf-lex.l:46: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/cf-lex.l:54: In file included from conf/confbase.Y:23: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/cf-lex.l:54: In file included from conf/confbase.Y:24: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/cf-lex.l:54: In file included from proto/bfd/config.Y:10: In file included from ./proto/bfd/bfd.h:63: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/cf-lex.l:54: In file included from proto/bfd/config.Y:10: In file included from ./proto/bfd/bfd.h:111: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from conf/cf-lex.l:54: conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "define", DEFINE }, | ^~~~~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "on", ON }, | ^~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "off", OFF }, | ^~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "yes", YES }, | ^~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "no", NO }, | ^~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[2]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "s", S }, | ^~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "ms", MS }, | ^~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "us", US }, | ^~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "port", PORT }, | ^~~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "vpn", VPN }, | ^~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "mpls", MPLS }, | ^~~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "from", FROM }, | ^~~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "max", MAX }, | ^~~~~ conf/confbase.Y:150:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | { "as", AS }, | ^~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "flow4", FLOW4 }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "flow6", FLOW6 }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "dst", DST }, | ^~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "src", SRC }, | ^~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "proto", PROTO }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "next", NEXT }, | ^~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "header", HEADER }, | ^~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "dport", DPORT }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "sport", SPORT }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "icmp", ICMP }, | ^~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "type", TYPE }, | ^~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "code", CODE }, | ^~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "tcp", TCP }, | ^~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "flags", FLAGS }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "length", LENGTH }, | ^~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "dscp", DSCP }, | ^~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "dont_fragment", DONT_FRAGMENT }, | ^~~~~~~~~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "is_fragment", IS_FRAGMENT }, | ^~~~~~~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "first_fragment", FIRST_FRAGMENT }, | ^~~~~~~~~~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "last_fragment", LAST_FRAGMENT }, | ^~~~~~~~~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "fragment", FRAGMENT }, | ^~~~~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "label", LABEL }, | ^~~~~~~ conf/flowspec.Y:27:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 27 | { "offset", OFFSET }, | ^~~~~~~~ client/cmds.Y:9:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 9 | { "quit", QUIT }, | ^~~~~~ client/cmds.Y:10:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 10 | { "exit", EXIT }, | ^~~~~~ client/cmds.Y:11:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 11 | { "help", HELP }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "function", FUNCTION }, | ^~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "print", PRINT }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "printn", PRINTN }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "unset", UNSET }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "return", RETURN }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "accept", ACCEPT }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "reject", REJECT }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "error", ERROR }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "int", INT }, | ^~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bool", BOOL }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "ip", IP }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "prefix", PREFIX }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "rd", RD }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "pair", PAIR }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "quad", QUAD }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "ec", EC }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "lc", LC }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "enum", ENUM }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "set", SET }, | ^~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "string", STRING }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bytestring", BYTESTRING }, | ^~~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bgpmask", BGPMASK }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bgppath", BGPPATH }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "clist", CLIST }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "eclist", ECLIST }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "lclist", LCLIST }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "if", IF }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "then", THEN }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "else", ELSE }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "case", CASE }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "for", FOR }, | ^~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "in", IN }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "do", DO }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "true", TRUE }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "false", FALSE }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "rt", RT }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "ro", RO }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "unknown", UNKNOWN }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "generic", GENERIC }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "gw", GW }, | ^~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "net", NET }, | ^~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "scope", SCOPE }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "dest", DEST }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "ifname", IFNAME }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "ifindex", IFINDEX }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "weight", WEIGHT }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "gw_mpls", GW_MPLS }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "roa_check", ROA_CHECK }, | ^~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "aspa_check", ASPA_CHECK }, | ^~~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "defined", DEFINED }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "add", ADD }, | ^~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "delete", DELETE }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "reset", RESET }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "prepend", PREPEND }, | ^~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "empty", EMPTY }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "filter", FILTER }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "where", WHERE }, | ^~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "eval", EVAL }, | ^~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "attribute", ATTRIBUTE }, | ^~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "from_hex", FROM_HEX }, | ^~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bt_assert", BT_ASSERT }, | ^~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bt_test_suite", BT_TEST_SUITE }, | ^~~~~~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bt_check_assign", BT_CHECK_ASSIGN }, | ^~~~~~~~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "bt_test_same", BT_TEST_SAME }, | ^~~~~~~~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "format", FORMAT }, | ^~~~~~~~ filter/config.Y:363:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 363 | { "stacks", STACKS }, | ^~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "router", ROUTER }, | ^~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "id", ID }, | ^~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "hostname", HOSTNAME }, | ^~~~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "protocol", PROTOCOL }, | ^~~~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "template", TEMPLATE }, | ^~~~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "preference", PREFERENCE }, | ^~~~~~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "disabled", DISABLED }, | ^~~~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "debug", DEBUG }, | ^~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "all", ALL }, | ^~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "direct", DIRECT }, | ^~~~~~~~ nest/config.Y:154:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 154 | { "pipe", PIPE }, | ^~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "interface", INTERFACE }, | ^~~~~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "import", IMPORT }, | ^~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "export", EXPORT }, | ^~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "none", NONE }, | ^~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "vrf", VRF }, | ^~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "default", DEFAULT }, | ^~~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "table", TABLE }, | ^~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "tables", TABLES }, | ^~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "states", STATES }, | ^~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "routes", ROUTES }, | ^~~~~~~~ nest/config.Y:155:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | { "filters", FILTERS }, | ^~~~~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "ipv4", IPV4 }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "ipv6", IPV6 }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "vpn4", VPN4 }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "vpn6", VPN6 }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "roa4", ROA4 }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "roa6", ROA6 }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "sadr", SADR }, | ^~~~~~ nest/config.Y:156:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 156 | { "aspa", ASPA }, | ^~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "receive", RECEIVE }, | ^~~~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "limit", LIMIT }, | ^~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "action", ACTION }, | ^~~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "warn", WARN }, | ^~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "block", BLOCK }, | ^~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "restart", RESTART }, | ^~~~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "disable", DISABLE }, | ^~~~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "keep", KEEP }, | ^~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "filtered", FILTERED }, | ^~~~~~~~~~ nest/config.Y:157:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 157 | { "rpki", RPKI }, | ^~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "password", PASSWORD }, | ^~~~~~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "key", KEY }, | ^~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "passive", PASSIVE }, | ^~~~~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "to", TO }, | ^~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "events", EVENTS }, | ^~~~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "packets", PACKETS }, | ^~~~~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "protocols", PROTOCOLS }, | ^~~~~~~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "channels", CHANNELS }, | ^~~~~~~~~~ nest/config.Y:158:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 158 | { "interfaces", INTERFACES }, | ^~~~~~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "algorithm", ALGORITHM }, | ^~~~~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "keyed", KEYED }, | ^~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "hmac", HMAC }, | ^~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "md5", MD5 }, | ^~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "sha1", SHA1 }, | ^~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "sha256", SHA256 }, | ^~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "sha384", SHA384 }, | ^~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "sha512", SHA512 }, | ^~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "blake2s128", BLAKE2S128 }, | ^~~~~~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "blake2s256", BLAKE2S256 }, | ^~~~~~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "blake2b256", BLAKE2B256 }, | ^~~~~~~~~~~~ nest/config.Y:159:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 159 | { "blake2b512", BLAKE2B512 }, | ^~~~~~~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "primary", PRIMARY }, | ^~~~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "stats", STATS }, | ^~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "count", COUNT }, | ^~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "commands", COMMANDS }, | ^~~~~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "preexport", PREEXPORT }, | ^~~~~~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "noexport", NOEXPORT }, | ^~~~~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "exported", EXPORTED }, | ^~~~~~~~~~ nest/config.Y:160:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 160 | { "generate", GENERATE }, | ^~~~~~~~~~ nest/config.Y:161:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 161 | { "bgp", BGP }, | ^~~~~ nest/config.Y:161:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 161 | { "passwords", PASSWORDS }, | ^~~~~~~~~~~ nest/config.Y:161:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 161 | { "description", DESCRIPTION }, | ^~~~~~~~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "reload", RELOAD }, | ^~~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "out", OUT }, | ^~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "mrtdump", MRTDUMP }, | ^~~~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "messages", MESSAGES }, | ^~~~~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "restrict", RESTRICT }, | ^~~~~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "memory", MEMORY }, | ^~~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "class", CLASS }, | ^~~~~~~ nest/config.Y:162:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 162 | { "partial", PARTIAL }, | ^~~~~~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "timeformat", TIMEFORMAT }, | ^~~~~~~~~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "iso", ISO }, | ^~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "short", SHORT }, | ^~~~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "long", LONG }, | ^~~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "route", ROUTE }, | ^~~~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "base", BASE }, | ^~~~~~ nest/config.Y:163:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 163 | { "log", LOG }, | ^~~~~ nest/config.Y:164:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 164 | { "graceful", GRACEFUL }, | ^~~~~~~~~~ nest/config.Y:164:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 164 | { "wait", WAIT }, | ^~~~~~ nest/config.Y:165:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 165 | { "check", CHECK }, | ^~~~~~~ nest/config.Y:165:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 165 | { "link", LINK }, | ^~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "cork", CORK }, | ^~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "sorted", SORTED }, | ^~~~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "trie", TRIE }, | ^~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "min", MIN }, | ^~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "roa", ROA }, | ^~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "digest", DIGEST }, | ^~~~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "refresh", REFRESH }, | ^~~~~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "settle", SETTLE }, | ^~~~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "time", TIME }, | ^~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "gc", GC }, | ^~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "threshold", THRESHOLD }, | ^~~~~~~~~~~ nest/config.Y:166:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 166 | { "period", PERIOD }, | ^~~~~~~~ nest/config.Y:167:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 167 | { "mpls_label", MPLS_LABEL }, | ^~~~~~~~~~~~ nest/config.Y:167:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 167 | { "mpls_policy", MPLS_POLICY }, | ^~~~~~~~~~~~~ nest/config.Y:167:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 167 | { "mpls_class", MPLS_CLASS }, | ^~~~~~~~~~~~ nest/config.Y:168:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 168 | { "aspa_providers", ASPA_PROVIDERS }, | ^~~~~~~~~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "ipv4_mc", IPV4_MC }, | ^~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "ipv4_mpls", IPV4_MPLS }, | ^~~~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "ipv6_mc", IPV6_MC }, | ^~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "ipv6_mpls", IPV6_MPLS }, | ^~~~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "ipv6_sadr", IPV6_SADR }, | ^~~~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "vpn4_mc", VPN4_MC }, | ^~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "vpn4_mpls", VPN4_MPLS }, | ^~~~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "vpn6_mc", VPN6_MC }, | ^~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "vpn6_mpls", VPN6_MPLS }, | ^~~~~~~~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "pri", PRI }, | ^~~~~ nest/config.Y:171:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 171 | { "sec", SEC }, | ^~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "net_type", NET_TYPE }, | ^~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_IP4", -((T_ENUM_NET_TYPE<<16) | NET_IP4) }, | ^~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_IP6", -((T_ENUM_NET_TYPE<<16) | NET_IP6) }, | ^~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_VPN4", -((T_ENUM_NET_TYPE<<16) | NET_VPN4) }, | ^~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_VPN6", -((T_ENUM_NET_TYPE<<16) | NET_VPN6) }, | ^~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_ROA4", -((T_ENUM_NET_TYPE<<16) | NET_ROA4) }, | ^~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_ROA6", -((T_ENUM_NET_TYPE<<16) | NET_ROA6) }, | ^~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_FLOW4", -((T_ENUM_NET_TYPE<<16) | NET_FLOW4) }, | ^~~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_FLOW6", -((T_ENUM_NET_TYPE<<16) | NET_FLOW6) }, | ^~~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_IP6_SADR", -((T_ENUM_NET_TYPE<<16) | NET_IP6_SADR) }, | ^~~~~~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_MPLS", -((T_ENUM_NET_TYPE<<16) | NET_MPLS) }, | ^~~~~~~~~~ nest/config.Y:173:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 173 | { "NET_ASPA", -((T_ENUM_NET_TYPE<<16) | NET_ASPA) }, | ^~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "rts", RTS }, | ^~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_STATIC", -((T_ENUM_RTS<<16) | RTS_STATIC) }, | ^~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_INHERIT", -((T_ENUM_RTS<<16) | RTS_INHERIT) }, | ^~~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_DEVICE", -((T_ENUM_RTS<<16) | RTS_DEVICE) }, | ^~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_STATIC_DEVICE", -((T_ENUM_RTS<<16) | RTS_STATIC_DEVICE) }, | ^~~~~~~~~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_REDIRECT", -((T_ENUM_RTS<<16) | RTS_REDIRECT) }, | ^~~~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_RIP", -((T_ENUM_RTS<<16) | RTS_RIP) }, | ^~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_OSPF", -((T_ENUM_RTS<<16) | RTS_OSPF) }, | ^~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_OSPF_IA", -((T_ENUM_RTS<<16) | RTS_OSPF_IA) }, | ^~~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_OSPF_EXT1", -((T_ENUM_RTS<<16) | RTS_OSPF_EXT1) }, | ^~~~~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_OSPF_EXT2", -((T_ENUM_RTS<<16) | RTS_OSPF_EXT2) }, | ^~~~~~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_BGP", -((T_ENUM_RTS<<16) | RTS_BGP) }, | ^~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_PIPE", -((T_ENUM_RTS<<16) | RTS_PIPE) }, | ^~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_BABEL", -((T_ENUM_RTS<<16) | RTS_BABEL) }, | ^~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_RPKI", -((T_ENUM_RTS<<16) | RTS_RPKI) }, | ^~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_L3VPN", -((T_ENUM_RTS<<16) | RTS_L3VPN) }, | ^~~~~~~~~~~ nest/config.Y:174:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 174 | { "RTS_AGGREGATED", -((T_ENUM_RTS<<16) | RTS_AGGREGATED) }, | ^~~~~~~~~~~~~~~~ nest/config.Y:177:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 177 | { "SCOPE_HOST", -((T_ENUM_SCOPE<<16) | SCOPE_HOST) }, | ^~~~~~~~~~~~ nest/config.Y:177:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 177 | { "SCOPE_LINK", -((T_ENUM_SCOPE<<16) | SCOPE_LINK) }, | ^~~~~~~~~~~~ nest/config.Y:177:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 177 | { "SCOPE_SITE", -((T_ENUM_SCOPE<<16) | SCOPE_SITE) }, | ^~~~~~~~~~~~ nest/config.Y:177:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 177 | { "SCOPE_ORGANIZATION", -((T_ENUM_SCOPE<<16) | SCOPE_ORGANIZATION) }, | ^~~~~~~~~~~~~~~~~~~~ nest/config.Y:177:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 177 | { "SCOPE_UNIVERSE", -((T_ENUM_SCOPE<<16) | SCOPE_UNIVERSE) }, | ^~~~~~~~~~~~~~~~ nest/config.Y:177:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 177 | { "SCOPE_UNDEFINED", -((T_ENUM_SCOPE<<16) | SCOPE_UNDEFINED) }, | ^~~~~~~~~~~~~~~~~ nest/config.Y:178:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 178 | { "rtd", RTD }, | ^~~~~ nest/config.Y:178:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 178 | { "RTD_UNICAST", -((T_ENUM_RTD<<16) | RTD_UNICAST) }, | ^~~~~~~~~~~~~ nest/config.Y:178:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 178 | { "RTD_BLACKHOLE", -((T_ENUM_RTD<<16) | RTD_BLACKHOLE) }, | ^~~~~~~~~~~~~~~ nest/config.Y:178:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 178 | { "RTD_UNREACHABLE", -((T_ENUM_RTD<<16) | RTD_UNREACHABLE) }, | ^~~~~~~~~~~~~~~~~ nest/config.Y:178:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 178 | { "RTD_PROHIBIT", -((T_ENUM_RTD<<16) | RTD_PROHIBIT) }, | ^~~~~~~~~~~~~~ nest/config.Y:179:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 179 | { "ROA_UNKNOWN", -((T_ENUM_ROA<<16) | ROA_UNKNOWN) }, | ^~~~~~~~~~~~~ nest/config.Y:179:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 179 | { "ROA_VALID", -((T_ENUM_ROA<<16) | ROA_VALID) }, | ^~~~~~~~~~~ nest/config.Y:179:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 179 | { "ROA_INVALID", -((T_ENUM_ROA<<16) | ROA_INVALID) }, | ^~~~~~~~~~~~~ nest/config.Y:180:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 180 | { "ASPA_UNKNOWN", -((T_ENUM_ASPA<<16) | ASPA_UNKNOWN) }, | ^~~~~~~~~~~~~~ nest/config.Y:180:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 180 | { "ASPA_VALID", -((T_ENUM_ASPA<<16) | ASPA_VALID) }, | ^~~~~~~~~~~~ nest/config.Y:180:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 180 | { "ASPA_INVALID", -((T_ENUM_ASPA<<16) | ASPA_INVALID) }, | ^~~~~~~~~~~~~~ nest/config.Y:181:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 181 | { "af", AF }, | ^~~~ nest/config.Y:181:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 181 | { "AF_IPV4", -((T_ENUM_AF<<16) | AFI_IPV4) }, | ^~~~~~~~~ nest/config.Y:181:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 181 | { "AF_IPV6", -((T_ENUM_AF<<16) | AFI_IPV6) }, | ^~~~~~~~~ nest/config.Y:182:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[17]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 182 | { "MPLS_POLICY_NONE", -((T_ENUM_MPLS_POLICY<<16) | MPLS_POLICY_NONE) }, | ^~~~~~~~~~~~~~~~~~ nest/config.Y:182:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 182 | { "MPLS_POLICY_STATIC", -((T_ENUM_MPLS_POLICY<<16) | MPLS_POLICY_STATIC) }, | ^~~~~~~~~~~~~~~~~~~~ nest/config.Y:182:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 182 | { "MPLS_POLICY_PREFIX", -((T_ENUM_MPLS_POLICY<<16) | MPLS_POLICY_PREFIX) }, | ^~~~~~~~~~~~~~~~~~~~ nest/config.Y:182:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[22]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 182 | { "MPLS_POLICY_AGGREGATE", -((T_ENUM_MPLS_POLICY<<16) | MPLS_POLICY_AGGREGATE) }, | ^~~~~~~~~~~~~~~~~~~~~~~ nest/config.Y:182:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 182 | { "MPLS_POLICY_VRF", -((T_ENUM_MPLS_POLICY<<16) | MPLS_POLICY_VRF) }, | ^~~~~~~~~~~~~~~~~ nest/config.Y:686:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 686 | { "show", SHOW }, | ^~~~~~ nest/config.Y:686:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 686 | { "status", STATUS }, | ^~~~~~~~ nest/config.Y:706:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 706 | { "summary", SUMMARY }, | ^~~~~~~~~ nest/config.Y:924:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 924 | { "symbols", SYMBOLS }, | ^~~~~~~~~ nest/config.Y:947:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 947 | { "dump", DUMP }, | ^~~~~~ nest/config.Y:947:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 947 | { "resources", RESOURCES }, | ^~~~~~~~~~~ nest/config.Y:949:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 949 | { "sockets", SOCKETS }, | ^~~~~~~~~ nest/config.Y:951:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 951 | { "ao", AO }, | ^~~~ nest/config.Y:951:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 951 | { "keys", KEYS }, | ^~~~~~ nest/config.Y:957:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 957 | { "neighbors", NEIGHBORS }, | ^~~~~~~~~~~ nest/config.Y:959:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 959 | { "attributes", ATTRIBUTES }, | ^~~~~~~~~~~~ nest/config.Y:985:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 985 | { "enable", ENABLE }, | ^~~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "domain", DOMAIN }, | ^~~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "range", RANGE }, | ^~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "static", STATIC }, | ^~~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "dynamic", DYNAMIC }, | ^~~~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "start", START }, | ^~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "policy", POLICY }, | ^~~~~~~~ nest/mpls.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "aggregate", AGGREGATE }, | ^~~~~~~~~~~ nest/mpls.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "ranges", RANGES }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "babel", BABEL }, | ^~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "metric", METRIC }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "rxcost", RXCOST }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "hello", HELLO }, | ^~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "update", UPDATE }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "interval", INTERVAL }, | ^~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "wired", WIRED }, | ^~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "wireless", WIRELESS }, | ^~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "rx", RX }, | ^~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "tx", TX }, | ^~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "buffer", BUFFER }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "priority", PRIORITY }, | ^~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "hop", HOP }, | ^~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "entries", ENTRIES }, | ^~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "randomize", RANDOMIZE }, | ^~~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "authentication", AUTHENTICATION }, | ^~~~~~~~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "mac", MAC }, | ^~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "permissive", PERMISSIVE }, | ^~~~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "extended", EXTENDED }, | ^~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "tunnel", TUNNEL }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "rtt", RTT }, | ^~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "decay", DECAY }, | ^~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "send", SEND }, | ^~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "timestamps", TIMESTAMPS }, | ^~~~~~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "cost", COST }, | ^~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "delay", DELAY }, | ^~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "prefer", PREFER }, | ^~~~~~~~ proto/babel/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "native", NATIVE }, | ^~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "bfd", BFD }, | ^~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "idle", IDLE }, | ^~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "multiplier", MULTIPLIER }, | ^~~~~~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "address", ADDRESS }, | ^~~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "express", EXPRESS }, | ^~~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "multihop", MULTIHOP }, | ^~~~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "neighbor", NEIGHBOR }, | ^~~~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "dev", DEV }, | ^~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "local", LOCAL }, | ^~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "simple", SIMPLE }, | ^~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "meticulous", METICULOUS }, | ^~~~~~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "strict", STRICT }, | ^~~~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "bind", BIND }, | ^~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "zero", ZERO }, | ^~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "udp6", UDP6 }, | ^~~~~~ proto/bfd/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "checksum", CHECKSUM }, | ^~~~~~~~~~ proto/bfd/config.Y:245:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 245 | { "sessions", SESSIONS }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "hold", HOLD }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "connect", CONNECT }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "retry", RETRY }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "keepalive", KEEPALIVE }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "startup", STARTUP }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "via", VIA }, | ^~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "self", SELF }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "path", PATH }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "forget", FORGET }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "after", AFTER }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "bgp_local_pref", BGP_LOCAL_PREF }, | ^~~~~~~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "bgp_med", BGP_MED }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "source", SOURCE }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "rr", RR }, | ^~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "rs", RS }, | ^~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "client", CLIENT }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "cluster", CLUSTER }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "as4", AS4 }, | ^~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "advertise", ADVERTISE }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "capabilities", CAPABILITIES }, | ^~~~~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "older", OLDER }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "missing", MISSING }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "lladdr", LLADDR }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "drop", DROP }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "ignore", IGNORE }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "enhanced", ENHANCED }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "interpret", INTERPRET }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "communities", COMMUNITIES }, | ^~~~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "igp", IGP }, | ^~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "gateway", GATEWAY }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "recursive", RECURSIVE }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "med", MED }, | ^~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "ttl", TTL }, | ^~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "security", SECURITY }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "deterministic", DETERMINISTIC }, | ^~~~~~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "secondary", SECONDARY }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "allow", ALLOW }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "paths", PATHS }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "aware", AWARE }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "setkey", SETKEY }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "confederation", CONFEDERATION }, | ^~~~~~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "member", MEMBER }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "multicast", MULTICAST }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "lived", LIVED }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "stale", STALE }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "ibgp", IBGP }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "ebgp", EBGP }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "mandatory", MANDATORY }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "internal", INTERNAL }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "external", EXTERNAL }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "sets", SETS }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "name", NAME }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "digits", DIGITS }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "aigp", AIGP }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "originate", ORIGINATE }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "enforce", ENFORCE }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "first", FIRST }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "free", FREE }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "validate", VALIDATE }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "role", ROLE }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "roles", ROLES }, | ^~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "peer", PEER }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "provider", PROVIDER }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "customer", CUSTOMER }, | ^~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "rs_server", RS_SERVER }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "rs_client", RS_CLIENT }, | ^~~~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "require", REQUIRE }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "bgp_otc", BGP_OTC }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "global", GLOBAL }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "recv", RECV }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "size", SIZE }, | ^~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "warning", WARNING }, | ^~~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "single", SINGLE }, | ^~~~~~~~ proto/bgp/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "double", DOUBLE }, | ^~~~~~~~ proto/bgp/config.Y:41:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 41 | { "secret", SECRET }, | ^~~~~~~~ proto/bgp/config.Y:41:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 41 | { "deprecated", DEPRECATED }, | ^~~~~~~~~~~~ proto/bgp/config.Y:41:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 41 | { "preferred", PREFERRED }, | ^~~~~~~~~~~ proto/bgp/config.Y:41:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 41 | { "cmac", CMAC }, | ^~~~~~ proto/bgp/config.Y:41:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 41 | { "aes128", AES128 }, | ^~~~~~~~ proto/bgp/config.Y:43:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 43 | { "bgp_origin", BGP_ORIGIN }, | ^~~~~~~~~~~~ proto/bgp/config.Y:43:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 43 | { "ORIGIN_IGP", -((T_ENUM_BGP_ORIGIN<<16) | ORIGIN_IGP) }, | ^~~~~~~~~~~~ proto/bgp/config.Y:43:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 43 | { "ORIGIN_EGP", -((T_ENUM_BGP_ORIGIN<<16) | ORIGIN_EGP) }, | ^~~~~~~~~~~~ proto/bgp/config.Y:43:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 43 | { "ORIGIN_INCOMPLETE", -((T_ENUM_BGP_ORIGIN<<16) | ORIGIN_INCOMPLETE) }, | ^~~~~~~~~~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "cease", CEASE }, | ^~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "hit", HIT }, | ^~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "administrative", ADMINISTRATIVE }, | ^~~~~~~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "shutdown", SHUTDOWN }, | ^~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "configuration", CONFIGURATION }, | ^~~~~~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "change", CHANGE }, | ^~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "deconfigured", DECONFIGURED }, | ^~~~~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "connection", CONNECTION }, | ^~~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "rejected", REJECTED }, | ^~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "collision", COLLISION }, | ^~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "of", OF }, | ^~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[20]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "aspa_check_upstream", ASPA_CHECK_UPSTREAM }, | ^~~~~~~~~~~~~~~~~~~~~ proto/bgp/config.Y:48:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[22]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 48 | { "aspa_check_downstream", ASPA_CHECK_DOWNSTREAM }, | ^~~~~~~~~~~~~~~~~~~~~~~ proto/mrt/config.Y:20:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 20 | { "mrt", MRT }, | ^~~~~ proto/mrt/config.Y:20:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 20 | { "filename", FILENAME }, | ^~~~~~~~~~ proto/mrt/config.Y:20:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 20 | { "always", ALWAYS }, | ^~~~~~~~ proto/ospf/config.Y:193:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 193 | { "ospf", OSPF }, | ^~~~~~ proto/ospf/config.Y:193:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 193 | { "v2", V2 }, | ^~~~ proto/ospf/config.Y:193:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 193 | { "v3", V3 }, | ^~~~ proto/ospf/config.Y:194:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 194 | { "area", AREA }, | ^~~~~~ proto/ospf/config.Y:194:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 194 | { "rfc1583compat", RFC1583COMPAT }, | ^~~~~~~~~~~~~~~ proto/ospf/config.Y:194:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 194 | { "stub", STUB }, | ^~~~~~ proto/ospf/config.Y:194:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 194 | { "tick", TICK }, | ^~~~~~ proto/ospf/config.Y:194:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 194 | { "cost2", COST2 }, | ^~~~~~~ proto/ospf/config.Y:194:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 194 | { "retransmit", RETRANSMIT }, | ^~~~~~~~~~~~ proto/ospf/config.Y:195:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 195 | { "transmit", TRANSMIT }, | ^~~~~~~~~~ proto/ospf/config.Y:195:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 195 | { "dead", DEAD }, | ^~~~~~ proto/ospf/config.Y:195:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 195 | { "broadcast", BROADCAST }, | ^~~~~~~~~~~ proto/ospf/config.Y:195:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 195 | { "bcast", BCAST }, | ^~~~~~~ proto/ospf/config.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "nonbroadcast", NONBROADCAST }, | ^~~~~~~~~~~~~~ proto/ospf/config.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "nbma", NBMA }, | ^~~~~~ proto/ospf/config.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "pointopoint", POINTOPOINT }, | ^~~~~~~~~~~~~ proto/ospf/config.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "ptp", PTP }, | ^~~~~ proto/ospf/config.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[17]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "pointomultipoint", POINTOMULTIPOINT }, | ^~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:196:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 196 | { "ptmp", PTMP }, | ^~~~~~ proto/ospf/config.Y:197:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 197 | { "cryptographic", CRYPTOGRAPHIC }, | ^~~~~~~~~~~~~~~ proto/ospf/config.Y:198:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 198 | { "eligible", ELIGIBLE }, | ^~~~~~~~~~ proto/ospf/config.Y:198:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 198 | { "poll", POLL }, | ^~~~~~ proto/ospf/config.Y:198:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 198 | { "networks", NETWORKS }, | ^~~~~~~~~~ proto/ospf/config.Y:198:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 198 | { "hidden", HIDDEN }, | ^~~~~~~~ proto/ospf/config.Y:198:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 198 | { "virtual", VIRTUAL }, | ^~~~~~~~~ proto/ospf/config.Y:198:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 198 | { "only", ONLY }, | ^~~~~~ proto/ospf/config.Y:199:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 199 | { "large", LARGE }, | ^~~~~~~ proto/ospf/config.Y:199:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 199 | { "normal", NORMAL }, | ^~~~~~~~ proto/ospf/config.Y:199:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 199 | { "stubnet", STUBNET }, | ^~~~~~~~~ proto/ospf/config.Y:199:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 199 | { "tag", TAG }, | ^~~~~ proto/ospf/config.Y:200:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 200 | { "lsadb", LSADB }, | ^~~~~~~ proto/ospf/config.Y:200:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 200 | { "ecmp", ECMP }, | ^~~~~~ proto/ospf/config.Y:200:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 200 | { "nssa", NSSA }, | ^~~~~~ proto/ospf/config.Y:200:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 200 | { "translator", TRANSLATOR }, | ^~~~~~~~~~~~ proto/ospf/config.Y:200:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 200 | { "stability", STABILITY }, | ^~~~~~~~~~~ proto/ospf/config.Y:201:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 201 | { "lsid", LSID }, | ^~~~~~ proto/ospf/config.Y:201:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 201 | { "instance", INSTANCE }, | ^~~~~~~~~~ proto/ospf/config.Y:201:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 201 | { "real", REAL }, | ^~~~~~ proto/ospf/config.Y:201:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 201 | { "netmask", NETMASK }, | ^~~~~~~~~ proto/ospf/config.Y:202:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 202 | { "merge", MERGE }, | ^~~~~~~ proto/ospf/config.Y:202:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 202 | { "lsa", LSA }, | ^~~~~ proto/ospf/config.Y:202:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 202 | { "suppression", SUPPRESSION }, | ^~~~~~~~~~~~~ proto/ospf/config.Y:202:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 202 | { "rfc5838", RFC5838 }, | ^~~~~~~~~ proto/ospf/config.Y:202:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 202 | { "pe", PE }, | ^~~~ proto/ospf/config.Y:520:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 520 | { "topology", TOPOLOGY }, | ^~~~~~~~~~ proto/ospf/config.Y:528:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 528 | { "state", STATE }, | ^~~~~~~ proto/pipe/config.Y:19:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 19 | { "generation", GENERATION }, | ^~~~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "radv", RADV }, | ^~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "ra", RA }, | ^~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "solicited", SOLICITED }, | ^~~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "unicast", UNICAST }, | ^~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "managed", MANAGED }, | ^~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "other", OTHER }, | ^~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "config", CONFIG }, | ^~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "linger", LINGER }, | ^~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "mtu", MTU }, | ^~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "reachable", REACHABLE }, | ^~~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "retrans", RETRANS }, | ^~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "timer", TIMER }, | ^~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "current", CURRENT }, | ^~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "valid", VALID }, | ^~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "mult", MULT }, | ^~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "lifetime", LIFETIME }, | ^~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "skip", SKIP }, | ^~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "onlink", ONLINK }, | ^~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "autonomous", AUTONOMOUS }, | ^~~~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "rdnss", RDNSS }, | ^~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "dnssl", DNSSL }, | ^~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "ns", NS }, | ^~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "trigger", TRIGGER }, | ^~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "sensitive", SENSITIVE }, | ^~~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "low", LOW }, | ^~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "medium", MEDIUM }, | ^~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "high", HIGH }, | ^~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "propagate", PROPAGATE }, | ^~~~~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "custom", CUSTOM }, | ^~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "option", OPTION }, | ^~~~~~~~ proto/radv/config.Y:40:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 40 | { "value", VALUE }, | ^~~~~~~ proto/radv/config.Y:47:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 47 | { "ra_preference", RA_PREFERENCE }, | ^~~~~~~~~~~~~~~ proto/radv/config.Y:47:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 47 | { "RA_PREF_LOW", -((T_ENUM_RA_PREFERENCE<<16) | RA_PREF_LOW) }, | ^~~~~~~~~~~~~ proto/radv/config.Y:47:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 47 | { "RA_PREF_MEDIUM", -((T_ENUM_RA_PREFERENCE<<16) | RA_PREF_MEDIUM) }, | ^~~~~~~~~~~~~~~~ proto/radv/config.Y:47:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 47 | { "RA_PREF_HIGH", -((T_ENUM_RA_PREFERENCE<<16) | RA_PREF_HIGH) }, | ^~~~~~~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "rip", RIP }, | ^~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "ng", NG }, | ^~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "infinity", INFINITY }, | ^~~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "timeout", TIMEOUT }, | ^~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "garbage", GARBAGE }, | ^~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "mode", MODE }, | ^~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "version", VERSION }, | ^~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "split", SPLIT }, | ^~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "horizon", HORIZON }, | ^~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "poison", POISON }, | ^~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "reverse", REVERSE }, | ^~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "plaintext", PLAINTEXT }, | ^~~~~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "demand", DEMAND }, | ^~~~~~~~ proto/rip/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "circuit", CIRCUIT }, | ^~~~~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "remote", REMOTE }, | ^~~~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "bird", BIRD }, | ^~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "private", PRIVATE }, | ^~~~~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "public", PUBLIC }, | ^~~~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "ssh", SSH }, | ^~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "transport", TRANSPORT }, | ^~~~~~~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "user", USER }, | ^~~~~~ proto/rpki/config.Y:35:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | { "expire", EXPIRE }, | ^~~~~~~~ proto/static/config.Y:49:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 49 | { "prohibit", PROHIBIT }, | ^~~~~~~~~~ proto/static/config.Y:50:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 50 | { "blackhole", BLACKHOLE }, | ^~~~~~~~~~~ proto/static/config.Y:50:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 50 | { "unreachable", UNREACHABLE }, | ^~~~~~~~~~~~~ proto/static/config.Y:51:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 51 | { "transit", TRANSIT }, | ^~~~~~~~~ proto/static/config.Y:51:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 51 | { "providers", PROVIDERS }, | ^~~~~~~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "syslog", SYSLOG }, | ^~~~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "trace", TRACE }, | ^~~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "info", INFO }, | ^~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "auth", AUTH }, | ^~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "fatal", FATAL }, | ^~~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "bug", BUG }, | ^~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "stderr", STDERR }, | ^~~~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "soft", SOFT }, | ^~~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "udp", UDP }, | ^~~~~ sysdep/unix/config.Y:22:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 22 | { "cli", CLI }, | ^~~~~ sysdep/unix/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "confirm", CONFIRM }, | ^~~~~~~~~ sysdep/unix/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "undo", UNDO }, | ^~~~~~ sysdep/unix/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "latency", LATENCY }, | ^~~~~~~~~ sysdep/unix/config.Y:23:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[9]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 23 | { "watchdog", WATCHDOG }, | ^~~~~~~~~~ sysdep/unix/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "ping", PING }, | ^~~~~~ sysdep/unix/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "wakeup", WAKEUP }, | ^~~~~~~~ sysdep/unix/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[11]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "scheduling", SCHEDULING }, | ^~~~~~~~~~~~ sysdep/unix/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "timers", TIMERS }, | ^~~~~~~~ sysdep/unix/config.Y:24:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "allocator", ALLOCATOR }, | ^~~~~~~~~~~ sysdep/unix/config.Y:25:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 25 | { "fixed", FIXED }, | ^~~~~~~ sysdep/unix/config.Y:26:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 26 | { "thread", THREAD }, | ^~~~~~~~ sysdep/unix/config.Y:26:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 26 | { "threads", THREADS }, | ^~~~~~~~~ sysdep/unix/config.Y:26:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 26 | { "group", GROUP }, | ^~~~~~~ sysdep/unix/config.Y:255:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[10]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 255 | { "configure", CONFIGURE }, | ^~~~~~~~~~~ sysdep/unix/config.Y:277:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 277 | { "down", DOWN }, | ^~~~~~ sysdep/unix/krt.Y:32:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 32 | { "kernel", KERNEL }, | ^~~~~~~~ sysdep/unix/krt.Y:32:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 32 | { "persist", PERSIST }, | ^~~~~~~~~ sysdep/unix/krt.Y:32:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[5]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 32 | { "scan", SCAN }, | ^~~~~~ sysdep/unix/krt.Y:32:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 32 | { "learn", LEARN }, | ^~~~~~~ sysdep/unix/krt.Y:32:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[7]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 32 | { "device", DEVICE }, | ^~~~~~~~ sysdep/bsd-netlink/netlink.Y:13:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[8]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 13 | { "netlink", NETLINK }, | ^~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_mtu", KRT_LOCK_MTU }, | ^~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_window", KRT_LOCK_WINDOW }, | ^~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[13]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_rtt", KRT_LOCK_RTT }, | ^~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_rttvar", KRT_LOCK_RTTVAR }, | ^~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_ssthresh", KRT_LOCK_SSTHRESH }, | ^~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_cwnd", KRT_LOCK_CWND }, | ^~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_advmss", KRT_LOCK_ADVMSS }, | ^~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[20]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_reordering", KRT_LOCK_REORDERING }, | ^~~~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_hoplimit", KRT_LOCK_HOPLIMIT }, | ^~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_initcwnd", KRT_LOCK_INITCWND }, | ^~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[17]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_rto_min", KRT_LOCK_RTO_MIN }, | ^~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_initrwnd", KRT_LOCK_INITRWND }, | ^~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_quickack", KRT_LOCK_QUICKACK }, | ^~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[17]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_congctl", KRT_LOCK_CONGCTL }, | ^~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[28]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_lock_fastopen_no_cookie", KRT_LOCK_FASTOPEN_NO_COOKIE }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_feature_ecn", KRT_FEATURE_ECN }, | ^~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.Y:15:3: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[20]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 15 | { "krt_feature_allfrag", KRT_FEATURE_ALLFRAG }, | ^~~~~~~~~~~~~~~~~~~~~ conf/cf-lex.l:74:1: warning: passing 'char[0]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 74 | HASH_DEFINE_REHASH_FN(SYM, struct symbol) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:122:5: note: expanded from macro 'HASH_DEFINE_REHASH_FN' 122 | { HASH_REHASH(* (HASH(type) *) v, id, p, step); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:108:2: note: expanded from macro 'HASH_REHASH' 108 | HASH_INSERT(v, id, _n); \ | ^~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:55:38: note: expanded from macro 'HASH_INSERT' 55 | u32 _h = HASH_FN(v, id, id##_KEY((node))); \ | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ conf/cf-lex.l:64:21: note: expanded from macro 'SYM_KEY' 64 | #define SYM_KEY(n) n->name | ^ ./lib/hash.h:23:46: note: expanded from macro 'HASH_FN' 23 | #define HASH_FN(v,id,key...) ((u32) (id##_FN(key)) >> (32 - (v).order)) | ~~~~~~~~^~~~ conf/cf-lex.l:67:28: note: expanded from macro 'SYM_FN' 67 | #define SYM_FN(k) cf_hash(k) | ^ conf/cf-lex.l:62:33: note: passing argument to parameter 'c' here 62 | static uint cf_hash(const byte *c); | ^ obj/conf/cf-lex.c:11887:13: warning: passing 'char *' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 11887 | YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11888 | (yy_n_chars), num_to_read ); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ conf/cf-lex.l:106:56: note: expanded from macro 'YY_INPUT' 106 | #define YY_INPUT(buf,result,max) result = cf_read_hook(buf, max, ifs->fd); | ^~~ conf/cf-lex.l:577:19: warning: passing 'const byte *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 577 | uint l = strlen(c); | ^ /usr/include/string.h:100:28: note: passing argument to parameter here 100 | size_t strlen(const char *) __pure; | ^ conf/cf-lex.l:588:3: warning: passing 'char[0]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 588 | HASH_INSERT2(scope->hash, SYM, p, s); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:158:5: note: expanded from macro 'HASH_INSERT2' 158 | HASH_INSERT(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:55:38: note: expanded from macro 'HASH_INSERT' 55 | u32 _h = HASH_FN(v, id, id##_KEY((node))); \ | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ conf/cf-lex.l:64:21: note: expanded from macro 'SYM_KEY' 64 | #define SYM_KEY(n) n->name | ^ ./lib/hash.h:23:46: note: expanded from macro 'HASH_FN' 23 | #define HASH_FN(v,id,key...) ((u32) (id##_FN(key)) >> (32 - (v).order)) | ~~~~~~~~^~~~ conf/cf-lex.l:67:28: note: expanded from macro 'SYM_FN' 67 | #define SYM_FN(k) cf_hash(k) | ^ conf/cf-lex.l:399:21: note: passing argument to parameter 'c' here 399 | cf_hash(const byte *c) | ^ conf/cf-lex.l:599:19: warning: passing 'const byte *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 599 | uint l = strlen(c); | ^ /usr/include/string.h:100:28: note: passing argument to parameter here 100 | size_t strlen(const char *) __pure; | ^ conf/cf-lex.l:616:3: warning: passing 'char[0]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 616 | HASH_INSERT2(ss->hash, SYM, &root_pool, s); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:158:5: note: expanded from macro 'HASH_INSERT2' 158 | HASH_INSERT(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:55:38: note: expanded from macro 'HASH_INSERT' 55 | u32 _h = HASH_FN(v, id, id##_KEY((node))); \ | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ conf/cf-lex.l:64:21: note: expanded from macro 'SYM_KEY' 64 | #define SYM_KEY(n) n->name | ^ ./lib/hash.h:23:46: note: expanded from macro 'HASH_FN' 23 | #define HASH_FN(v,id,key...) ((u32) (id##_FN(key)) >> (32 - (v).order)) | ~~~~~~~~^~~~ conf/cf-lex.l:67:28: note: expanded from macro 'SYM_FN' 67 | #define SYM_FN(k) cf_hash(k) | ^ conf/cf-lex.l:399:21: note: passing argument to parameter 'c' here 399 | cf_hash(const byte *c) | ^ conf/cf-lex.l:640:55: warning: passing 'const byte *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 640 | scope->hash.data && (s = HASH_FIND(scope->hash, SYM, c))) | ^ ./lib/hash.h:48:48: note: expanded from macro 'HASH_FIND' 48 | while (_n && !HASH_EQ(v, id, id##_KEY(_n), key)) \ | ^~~ ./lib/hash.h:22:45: note: expanded from macro 'HASH_EQ' 22 | #define HASH_EQ(v,id,k1,k2...) (id##_EQ(k1, k2)) | ^~ conf/cf-lex.l:66:32: note: expanded from macro 'SYM_EQ' 66 | #define SYM_EQ(a,b) !strcmp(a,b) | ^ /usr/include/string.h:85:39: note: passing argument to parameter here 85 | int strcmp(const char *, const char *) __pure; | ^ conf/cf-lex.l:686:68: warning: passing 'char[0]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 686 | return cf_new_symbol(conf->current_scope, conf->pool, conf->mem, sym->name); | ^~~~~~~~~ conf/cf-lex.l:570:81: note: passing argument to parameter 'c' here 570 | cf_new_symbol(struct sym_scope *scope, pool *p, struct linpool *lp, const byte *c) | ^ conf/cf-lex.l:699:31: warning: passing 'char[64]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 699 | s = cf_get_symbol(conf, buf); | ^~~ conf/cf-lex.l:658:48: note: passing argument to parameter 'c' here 658 | cf_get_symbol(struct config *conf, const byte *c) | ^ conf/cf-lex.l:712:50: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 712 | struct symbol *sym = cf_get_symbol(new_config, data); | ^~~~ conf/cf-lex.l:658:48: note: passing argument to parameter 'c' here 658 | cf_get_symbol(struct config *conf, const byte *c) | ^ conf/cf-lex.l:736:29: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 736 | def->sym = cf_root_symbol(def->name, &global_filter_scope); | ^~~~~~~~~ conf/cf-lex.l:597:28: note: passing argument to parameter 'c' here 597 | cf_root_symbol(const byte *c, struct sym_scope *ss) | ^ conf/cf-lex.l:757:87: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 757 | struct symbol *sym = cf_find_symbol_scope(c ? c->root_scope : &global_filter_scope, name); | ^~~~ conf/cf-lex.l:633:65: note: passing argument to parameter 'c' here 633 | cf_find_symbol_scope(const struct sym_scope *scope, const byte *c) | ^ 635 warnings generated. CC -o obj/conf/conf.o -c conf/conf.c In file included from conf/conf.c:47: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:48: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from conf/conf.c:49: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/filter/filter.o -c filter/filter.c In file included from filter/filter.c:29: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:38: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/filter.c:39: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == filter/filter.c:372:14: warning: passing 'char[0]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 372 | if ((osym = cf_find_symbol(old, sym->name)) && | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./conf/conf.h:271:16: note: expanded from macro 'cf_find_symbol' 271 | )((where), (what)) | ^~~~~~ ./conf/conf.h:265:87: note: passing argument to parameter 'c' here 265 | static inline struct symbol *cf_find_symbol_cfg(const struct config *cfg, const byte *c) | ^ filter/filter.c:381:14: warning: passing 'char[0]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 381 | if ((osym = cf_find_symbol(old, sym->name)) && | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./conf/conf.h:271:16: note: expanded from macro 'cf_find_symbol' 271 | )((where), (what)) | ^~~~~~ ./conf/conf.h:265:87: note: passing argument to parameter 'c' here 265 | static inline struct symbol *cf_find_symbol_cfg(const struct config *cfg, const byte *c) | ^ 14 warnings generated. CC -o obj/filter/data.o -c filter/data.c In file included from filter/data.c:11: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:20: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/data.c:21: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == filter/data.c:549:21: warning: passing 'const char *const' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 549 | return patmatch(v2->val.s, v1->val.s); | ^~~~~~~~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ filter/data.c:549:32: warning: passing 'const char *const' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 549 | return patmatch(v2->val.s, v1->val.s); | ^~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ filter/data.c:708:24: warning: passing 'char[1024]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 708 | case T_EC: ec_format(buf2, v->val.ec); buffer_print(buf, "%s", buf2); return; | ^~~~ ./lib/attrs.h:250:21: note: passing argument to parameter 'buf' here 250 | int ec_format(byte *buf, u64 ec); | ^ filter/data.c:709:24: warning: passing 'char[1024]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 709 | case T_LC: lc_format(buf2, v->val.lc); buffer_print(buf, "%s", buf2); return; | ^~~~ ./lib/attrs.h:252:21: note: passing argument to parameter 'buf' here 252 | int lc_format(byte *buf, lcomm lc); | ^ filter/data.c:714:42: warning: passing 'char[1024]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 714 | case T_PATH: as_path_format(v->val.ad, buf2, 1000); buffer_print(buf, "(path %s)", buf2); return; | ^~~~ ./lib/attrs.h:78:53: note: passing argument to parameter 'buf' here 78 | void as_path_format(const struct adata *path, byte *buf, uint size) ACCESS_WRITE(2, 3); | ^ filter/data.c:715:50: warning: passing 'char[1024]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 715 | case T_CLIST: int_set_format(v->val.ad, 1, -1, buf2, 1000); buffer_print(buf, "(clist %s)", buf2); return; | ^~~~ ./lib/attrs.h:249:79: note: passing argument to parameter 'buf' here 249 | int int_set_format(const struct adata *set, enum isf_way way, int from, byte *buf, uint size) ACCESS_WRITE(4, 5); | ^ filter/data.c:716:47: warning: passing 'char[1024]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 716 | case T_ECLIST: ec_set_format(v->val.ad, -1, buf2, 1000); buffer_print(buf, "(eclist %s)", buf2); return; | ^~~~ ./lib/attrs.h:251:60: note: passing argument to parameter 'buf' here 251 | int ec_set_format(const struct adata *set, int from, byte *buf, uint size) ACCESS_WRITE(3, 4); | ^ filter/data.c:717:47: warning: passing 'char[1024]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 717 | case T_LCLIST: lc_set_format(v->val.ad, -1, buf2, 1000); buffer_print(buf, "(lclist %s)", buf2); return; | ^~~~ ./lib/attrs.h:253:60: note: passing argument to parameter 'buf' here 253 | int lc_set_format(const struct adata *set, int from, byte *buf, uint size) ACCESS_WRITE(3, 4); | ^ filter/data.c:730:24: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 730 | return lp_strdup(lp, b.start); | ^~~~~~~ ./lib/string.h:64:36: note: passing argument to parameter 'c' here 64 | lp_strdup(linpool *lp, const char *c) | ^ filter/data.c:738:14: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[1024]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 738 | .start = val_dump_buffer, | ^~~~~~~~~~~~~~~ filter/data.c:739:12: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 739 | .end = val_dump_buffer + 1024, | ^~~~~~~~~~~~~~~~~~~~~~ 23 warnings generated. CC -o obj/filter/f-util.o -c filter/f-util.c In file included from filter/f-util.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:11: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:11: In file included from ./conf/conf.h:17: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/f-util.c:15: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == filter/f-util.c:137:9: warning: initializing 'char *' with an expression of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 137 | char *types = tbuf.start + 3; | ^ ~~~~~~~~~~~~~~ filter/f-util.c:148:52: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 148 | struct symbol *sym = cf_find_symbol_scope(scope, name); | ^~~~ ./conf/conf.h:264:80: note: passing argument to parameter 'c' here 264 | struct symbol *cf_find_symbol_scope(const struct sym_scope *scope, const byte *c); | ^ filter/f-util.c:169:59: warning: passing 'char[10]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 169 | struct symbol *ms = scope ? cf_find_symbol_scope(scope, "!for_next") : NULL; | ^~~~~~~~~~~ ./conf/conf.h:264:80: note: passing argument to parameter 'c' here 264 | struct symbol *cf_find_symbol_scope(const struct sym_scope *scope, const byte *c); | ^ filter/f-util.c:200:59: warning: passing 'char[5]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 200 | struct symbol *ms = scope ? cf_find_symbol_scope(scope, "last") : NULL; | ^~~~~~ ./conf/conf.h:264:80: note: passing argument to parameter 'c' here 264 | struct symbol *cf_find_symbol_scope(const struct sym_scope *scope, const byte *c); | ^ 16 warnings generated. CC -o obj/filter/tree.o -c filter/tree.c In file included from filter/tree.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:11: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:11: In file included from ./conf/conf.h:17: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/tree.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 9 warnings generated. CC -o obj/filter/trie.o -c filter/trie.c In file included from filter/trie.c:112: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:114: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:114: In file included from ./conf/conf.h:17: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:115: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:115: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:115: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:115: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:115: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/trie.c:115: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 9 warnings generated. gm4 -s -DTARGET=C -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.c CC -o obj/filter/inst-gen.o -c obj/filter/inst-gen.c In file included from filter/decl.m4:541: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from filter/decl.m4:542: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == filter/f-inst.c:284:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 284 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:284:17: note: place parentheses around the assignment to silence this warning 284 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:284:17: note: use '==' to turn this assignment into an equality comparison 284 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:285:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 285 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:285:17: note: place parentheses around the assignment to silence this warning 285 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:285:17: note: use '==' to turn this assignment into an equality comparison 285 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:289:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 289 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:289:17: note: place parentheses around the assignment to silence this warning 289 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:289:17: note: use '==' to turn this assignment into an equality comparison 289 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:290:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 290 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:290:17: note: place parentheses around the assignment to silence this warning 290 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:290:17: note: use '==' to turn this assignment into an equality comparison 290 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:294:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 294 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:294:17: note: place parentheses around the assignment to silence this warning 294 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:294:17: note: use '==' to turn this assignment into an equality comparison 294 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:295:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 295 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:295:17: note: place parentheses around the assignment to silence this warning 295 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:295:17: note: use '==' to turn this assignment into an equality comparison 295 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:299:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 299 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:299:17: note: place parentheses around the assignment to silence this warning 299 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:299:17: note: use '==' to turn this assignment into an equality comparison 299 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:300:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 300 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:300:17: note: place parentheses around the assignment to silence this warning 300 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:300:17: note: use '==' to turn this assignment into an equality comparison 300 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:305:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 305 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:305:17: note: place parentheses around the assignment to silence this warning 305 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:305:17: note: use '==' to turn this assignment into an equality comparison 305 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:306:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 306 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:306:17: note: place parentheses around the assignment to silence this warning 306 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:306:17: note: use '==' to turn this assignment into an equality comparison 306 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:310:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 310 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:310:17: note: place parentheses around the assignment to silence this warning 310 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:310:17: note: use '==' to turn this assignment into an equality comparison 310 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:311:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 311 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:311:17: note: place parentheses around the assignment to silence this warning 311 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:311:17: note: use '==' to turn this assignment into an equality comparison 311 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:315:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 315 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:315:17: note: place parentheses around the assignment to silence this warning 315 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:315:17: note: use '==' to turn this assignment into an equality comparison 315 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:325:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 325 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:325:17: note: place parentheses around the assignment to silence this warning 325 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:325:17: note: use '==' to turn this assignment into an equality comparison 325 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:336:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 336 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:336:17: note: place parentheses around the assignment to silence this warning 336 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:336:17: note: use '==' to turn this assignment into an equality comparison 336 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:337:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 337 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:337:17: note: place parentheses around the assignment to silence this warning 337 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:337:17: note: use '==' to turn this assignment into an equality comparison 337 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:346:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 346 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:346:17: note: place parentheses around the assignment to silence this warning 346 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:346:17: note: use '==' to turn this assignment into an equality comparison 346 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:347:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 347 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:347:17: note: place parentheses around the assignment to silence this warning 347 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:347:17: note: use '==' to turn this assignment into an equality comparison 347 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:386:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 386 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:386:17: note: place parentheses around the assignment to silence this warning 386 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:386:17: note: use '==' to turn this assignment into an equality comparison 386 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:387:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 387 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:387:17: note: place parentheses around the assignment to silence this warning 387 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:387:17: note: use '==' to turn this assignment into an equality comparison 387 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:388:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 388 | } while (child3 = child3->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:388:17: note: place parentheses around the assignment to silence this warning 388 | } while (child3 = child3->next); | ^ | ( ) filter/f-inst.c:388:17: note: use '==' to turn this assignment into an equality comparison 388 | } while (child3 = child3->next); | ^ | == filter/f-inst.c:443:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 443 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:443:17: note: place parentheses around the assignment to silence this warning 443 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:443:17: note: use '==' to turn this assignment into an equality comparison 443 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:444:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 444 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:444:17: note: place parentheses around the assignment to silence this warning 444 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:444:17: note: use '==' to turn this assignment into an equality comparison 444 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:450:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 450 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:450:17: note: place parentheses around the assignment to silence this warning 450 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:450:17: note: use '==' to turn this assignment into an equality comparison 450 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:451:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 451 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:451:17: note: place parentheses around the assignment to silence this warning 451 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:451:17: note: use '==' to turn this assignment into an equality comparison 451 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:457:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 457 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:457:17: note: place parentheses around the assignment to silence this warning 457 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:457:17: note: use '==' to turn this assignment into an equality comparison 457 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:458:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 458 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:458:17: note: place parentheses around the assignment to silence this warning 458 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:458:17: note: use '==' to turn this assignment into an equality comparison 458 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:468:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 468 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:468:17: note: place parentheses around the assignment to silence this warning 468 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:468:17: note: use '==' to turn this assignment into an equality comparison 468 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:469:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 469 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:469:17: note: place parentheses around the assignment to silence this warning 469 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:469:17: note: use '==' to turn this assignment into an equality comparison 469 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:479:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 479 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:479:17: note: place parentheses around the assignment to silence this warning 479 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:479:17: note: use '==' to turn this assignment into an equality comparison 479 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:484:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 484 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:484:17: note: place parentheses around the assignment to silence this warning 484 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:484:17: note: use '==' to turn this assignment into an equality comparison 484 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:485:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 485 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:485:17: note: place parentheses around the assignment to silence this warning 485 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:485:17: note: use '==' to turn this assignment into an equality comparison 485 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:493:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 493 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:493:17: note: place parentheses around the assignment to silence this warning 493 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:493:17: note: use '==' to turn this assignment into an equality comparison 493 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:494:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 494 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:494:17: note: place parentheses around the assignment to silence this warning 494 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:494:17: note: use '==' to turn this assignment into an equality comparison 494 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:502:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 502 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:502:17: note: place parentheses around the assignment to silence this warning 502 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:502:17: note: use '==' to turn this assignment into an equality comparison 502 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:506:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 506 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:506:17: note: place parentheses around the assignment to silence this warning 506 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:506:17: note: use '==' to turn this assignment into an equality comparison 506 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:507:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 507 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:507:17: note: place parentheses around the assignment to silence this warning 507 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:507:17: note: use '==' to turn this assignment into an equality comparison 507 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:512:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 512 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:512:17: note: place parentheses around the assignment to silence this warning 512 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:512:17: note: use '==' to turn this assignment into an equality comparison 512 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:536:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 536 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:536:17: note: place parentheses around the assignment to silence this warning 536 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:536:17: note: use '==' to turn this assignment into an equality comparison 536 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:563:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 563 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:563:17: note: place parentheses around the assignment to silence this warning 563 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:563:17: note: use '==' to turn this assignment into an equality comparison 563 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:564:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 564 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:564:17: note: place parentheses around the assignment to silence this warning 564 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:564:17: note: use '==' to turn this assignment into an equality comparison 564 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:565:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 565 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:565:17: note: place parentheses around the assignment to silence this warning 565 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:565:17: note: use '==' to turn this assignment into an equality comparison 565 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:566:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 566 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:566:17: note: place parentheses around the assignment to silence this warning 566 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:566:17: note: use '==' to turn this assignment into an equality comparison 566 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:593:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 593 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:593:17: note: place parentheses around the assignment to silence this warning 593 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:593:17: note: use '==' to turn this assignment into an equality comparison 593 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:602:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 602 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:602:17: note: place parentheses around the assignment to silence this warning 602 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:602:17: note: use '==' to turn this assignment into an equality comparison 602 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:611:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 611 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:611:17: note: place parentheses around the assignment to silence this warning 611 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:611:17: note: use '==' to turn this assignment into an equality comparison 611 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:620:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 620 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:620:17: note: place parentheses around the assignment to silence this warning 620 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:620:17: note: use '==' to turn this assignment into an equality comparison 620 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:629:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 629 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:629:17: note: place parentheses around the assignment to silence this warning 629 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:629:17: note: use '==' to turn this assignment into an equality comparison 629 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:641:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 641 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:641:17: note: place parentheses around the assignment to silence this warning 641 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:641:17: note: use '==' to turn this assignment into an equality comparison 641 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:650:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 650 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:650:17: note: place parentheses around the assignment to silence this warning 650 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:650:17: note: use '==' to turn this assignment into an equality comparison 650 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:691:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 691 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:691:17: note: place parentheses around the assignment to silence this warning 691 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:691:17: note: use '==' to turn this assignment into an equality comparison 691 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:739:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 739 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:739:17: note: place parentheses around the assignment to silence this warning 739 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:739:17: note: use '==' to turn this assignment into an equality comparison 739 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:867:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 867 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:867:17: note: place parentheses around the assignment to silence this warning 867 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:867:17: note: use '==' to turn this assignment into an equality comparison 867 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:905:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 905 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:905:17: note: place parentheses around the assignment to silence this warning 905 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:905:17: note: use '==' to turn this assignment into an equality comparison 905 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:952:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 952 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:952:17: note: place parentheses around the assignment to silence this warning 952 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:952:17: note: use '==' to turn this assignment into an equality comparison 952 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:953:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 953 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:953:17: note: place parentheses around the assignment to silence this warning 953 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:953:17: note: use '==' to turn this assignment into an equality comparison 953 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:965:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 965 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:965:17: note: place parentheses around the assignment to silence this warning 965 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:965:17: note: use '==' to turn this assignment into an equality comparison 965 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:966:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 966 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:966:17: note: place parentheses around the assignment to silence this warning 966 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:966:17: note: use '==' to turn this assignment into an equality comparison 966 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:967:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 967 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:967:17: note: place parentheses around the assignment to silence this warning 967 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:967:17: note: use '==' to turn this assignment into an equality comparison 967 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:968:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 968 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:968:17: note: place parentheses around the assignment to silence this warning 968 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:968:17: note: use '==' to turn this assignment into an equality comparison 968 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:969:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 969 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:969:17: note: place parentheses around the assignment to silence this warning 969 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:969:17: note: use '==' to turn this assignment into an equality comparison 969 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:972:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 972 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:972:17: note: place parentheses around the assignment to silence this warning 972 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:972:17: note: use '==' to turn this assignment into an equality comparison 972 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1008:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1008 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1008:17: note: place parentheses around the assignment to silence this warning 1008 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1008:17: note: use '==' to turn this assignment into an equality comparison 1008 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1044:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1044 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1044:17: note: place parentheses around the assignment to silence this warning 1044 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1044:17: note: use '==' to turn this assignment into an equality comparison 1044 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1054:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1054 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1054:17: note: place parentheses around the assignment to silence this warning 1054 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1054:17: note: use '==' to turn this assignment into an equality comparison 1054 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1064:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1064 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1064:17: note: place parentheses around the assignment to silence this warning 1064 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1064:17: note: use '==' to turn this assignment into an equality comparison 1064 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1067:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1067 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1067:17: note: place parentheses around the assignment to silence this warning 1067 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1067:17: note: use '==' to turn this assignment into an equality comparison 1067 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1075:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1075 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1075:17: note: place parentheses around the assignment to silence this warning 1075 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1075:17: note: use '==' to turn this assignment into an equality comparison 1075 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1078:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1078 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1078:17: note: place parentheses around the assignment to silence this warning 1078 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1078:17: note: use '==' to turn this assignment into an equality comparison 1078 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1081:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1081 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1081:17: note: place parentheses around the assignment to silence this warning 1081 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1081:17: note: use '==' to turn this assignment into an equality comparison 1081 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1084:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1084 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1084:17: note: place parentheses around the assignment to silence this warning 1084 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1084:17: note: use '==' to turn this assignment into an equality comparison 1084 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1087:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1087 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1087:17: note: place parentheses around the assignment to silence this warning 1087 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1087:17: note: use '==' to turn this assignment into an equality comparison 1087 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1090:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1090 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1090:17: note: place parentheses around the assignment to silence this warning 1090 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1090:17: note: use '==' to turn this assignment into an equality comparison 1090 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1093:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1093 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1093:17: note: place parentheses around the assignment to silence this warning 1093 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1093:17: note: use '==' to turn this assignment into an equality comparison 1093 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1096:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1096 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1096:17: note: place parentheses around the assignment to silence this warning 1096 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1096:17: note: use '==' to turn this assignment into an equality comparison 1096 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1099:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1099 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1099:17: note: place parentheses around the assignment to silence this warning 1099 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1099:17: note: use '==' to turn this assignment into an equality comparison 1099 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1102:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1102 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1102:17: note: place parentheses around the assignment to silence this warning 1102 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1102:17: note: use '==' to turn this assignment into an equality comparison 1102 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1105:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1105 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1105:17: note: place parentheses around the assignment to silence this warning 1105 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1105:17: note: use '==' to turn this assignment into an equality comparison 1105 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1108:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1108 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1108:17: note: place parentheses around the assignment to silence this warning 1108 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1108:17: note: use '==' to turn this assignment into an equality comparison 1108 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1111:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1111 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1111:17: note: place parentheses around the assignment to silence this warning 1111 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1111:17: note: use '==' to turn this assignment into an equality comparison 1111 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1114:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1114 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1114:17: note: place parentheses around the assignment to silence this warning 1114 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1114:17: note: use '==' to turn this assignment into an equality comparison 1114 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1119:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1119 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1119:17: note: place parentheses around the assignment to silence this warning 1119 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1119:17: note: use '==' to turn this assignment into an equality comparison 1119 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1204:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1204 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1204:17: note: place parentheses around the assignment to silence this warning 1204 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1204:17: note: use '==' to turn this assignment into an equality comparison 1204 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1208:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1208 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1208:17: note: place parentheses around the assignment to silence this warning 1208 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1208:17: note: use '==' to turn this assignment into an equality comparison 1208 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1249:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1249 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1249:17: note: place parentheses around the assignment to silence this warning 1249 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1249:17: note: use '==' to turn this assignment into an equality comparison 1249 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1250:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1250 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1250:17: note: place parentheses around the assignment to silence this warning 1250 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1250:17: note: use '==' to turn this assignment into an equality comparison 1250 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1258:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1258 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1258:17: note: place parentheses around the assignment to silence this warning 1258 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1258:17: note: use '==' to turn this assignment into an equality comparison 1258 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1259:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1259 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1259:17: note: place parentheses around the assignment to silence this warning 1259 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1259:17: note: use '==' to turn this assignment into an equality comparison 1259 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1266:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1266 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1266:17: note: place parentheses around the assignment to silence this warning 1266 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1266:17: note: use '==' to turn this assignment into an equality comparison 1266 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1267:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1267 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1267:17: note: place parentheses around the assignment to silence this warning 1267 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1267:17: note: use '==' to turn this assignment into an equality comparison 1267 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1273:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1273 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1273:17: note: place parentheses around the assignment to silence this warning 1273 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1273:17: note: use '==' to turn this assignment into an equality comparison 1273 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1274:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1274 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1274:17: note: place parentheses around the assignment to silence this warning 1274 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1274:17: note: use '==' to turn this assignment into an equality comparison 1274 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1287:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1287 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1287:17: note: place parentheses around the assignment to silence this warning 1287 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1287:17: note: use '==' to turn this assignment into an equality comparison 1287 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1288:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1288 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1288:17: note: place parentheses around the assignment to silence this warning 1288 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1288:17: note: use '==' to turn this assignment into an equality comparison 1288 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1294:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1294 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1294:17: note: place parentheses around the assignment to silence this warning 1294 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1294:17: note: use '==' to turn this assignment into an equality comparison 1294 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1295:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1295 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1295:17: note: place parentheses around the assignment to silence this warning 1295 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1295:17: note: use '==' to turn this assignment into an equality comparison 1295 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1301:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1301 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1301:17: note: place parentheses around the assignment to silence this warning 1301 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1301:17: note: use '==' to turn this assignment into an equality comparison 1301 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1302:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1302 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1302:17: note: place parentheses around the assignment to silence this warning 1302 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1302:17: note: use '==' to turn this assignment into an equality comparison 1302 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1308:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1308 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1308:17: note: place parentheses around the assignment to silence this warning 1308 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1308:17: note: use '==' to turn this assignment into an equality comparison 1308 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1309:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1309 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1309:17: note: place parentheses around the assignment to silence this warning 1309 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1309:17: note: use '==' to turn this assignment into an equality comparison 1309 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1315:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1315 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1315:17: note: place parentheses around the assignment to silence this warning 1315 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1315:17: note: use '==' to turn this assignment into an equality comparison 1315 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1316:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1316 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1316:17: note: place parentheses around the assignment to silence this warning 1316 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1316:17: note: use '==' to turn this assignment into an equality comparison 1316 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1322:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1322 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1322:17: note: place parentheses around the assignment to silence this warning 1322 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1322:17: note: use '==' to turn this assignment into an equality comparison 1322 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1323:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1323 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1323:17: note: place parentheses around the assignment to silence this warning 1323 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1323:17: note: use '==' to turn this assignment into an equality comparison 1323 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1329:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1329 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1329:17: note: place parentheses around the assignment to silence this warning 1329 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1329:17: note: use '==' to turn this assignment into an equality comparison 1329 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1330:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1330 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1330:17: note: place parentheses around the assignment to silence this warning 1330 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1330:17: note: use '==' to turn this assignment into an equality comparison 1330 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1336:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1336 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1336:17: note: place parentheses around the assignment to silence this warning 1336 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1336:17: note: use '==' to turn this assignment into an equality comparison 1336 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1337:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1337 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1337:17: note: place parentheses around the assignment to silence this warning 1337 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1337:17: note: use '==' to turn this assignment into an equality comparison 1337 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1348:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1348 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1348:17: note: place parentheses around the assignment to silence this warning 1348 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1348:17: note: use '==' to turn this assignment into an equality comparison 1348 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1349:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1349 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1349:17: note: place parentheses around the assignment to silence this warning 1349 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1349:17: note: use '==' to turn this assignment into an equality comparison 1349 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1355:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1355 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1355:17: note: place parentheses around the assignment to silence this warning 1355 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1355:17: note: use '==' to turn this assignment into an equality comparison 1355 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1356:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1356 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1356:17: note: place parentheses around the assignment to silence this warning 1356 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1356:17: note: use '==' to turn this assignment into an equality comparison 1356 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1369:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1369 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1369:17: note: place parentheses around the assignment to silence this warning 1369 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1369:17: note: use '==' to turn this assignment into an equality comparison 1369 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1370:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1370 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1370:17: note: place parentheses around the assignment to silence this warning 1370 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1370:17: note: use '==' to turn this assignment into an equality comparison 1370 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1376:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1376 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1376:17: note: place parentheses around the assignment to silence this warning 1376 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1376:17: note: use '==' to turn this assignment into an equality comparison 1376 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1377:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1377 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1377:17: note: place parentheses around the assignment to silence this warning 1377 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1377:17: note: use '==' to turn this assignment into an equality comparison 1377 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1383:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1383 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1383:17: note: place parentheses around the assignment to silence this warning 1383 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1383:17: note: use '==' to turn this assignment into an equality comparison 1383 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1384:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1384 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1384:17: note: place parentheses around the assignment to silence this warning 1384 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1384:17: note: use '==' to turn this assignment into an equality comparison 1384 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1394:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1394 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1394:17: note: place parentheses around the assignment to silence this warning 1394 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1394:17: note: use '==' to turn this assignment into an equality comparison 1394 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1395:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1395 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1395:17: note: place parentheses around the assignment to silence this warning 1395 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1395:17: note: use '==' to turn this assignment into an equality comparison 1395 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1401:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1401 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1401:17: note: place parentheses around the assignment to silence this warning 1401 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1401:17: note: use '==' to turn this assignment into an equality comparison 1401 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1402:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1402 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1402:17: note: place parentheses around the assignment to silence this warning 1402 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1402:17: note: use '==' to turn this assignment into an equality comparison 1402 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1408:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1408 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1408:17: note: place parentheses around the assignment to silence this warning 1408 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1408:17: note: use '==' to turn this assignment into an equality comparison 1408 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1409:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1409 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1409:17: note: place parentheses around the assignment to silence this warning 1409 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1409:17: note: use '==' to turn this assignment into an equality comparison 1409 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1419:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1419 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1419:17: note: place parentheses around the assignment to silence this warning 1419 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1419:17: note: use '==' to turn this assignment into an equality comparison 1419 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1420:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1420 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1420:17: note: place parentheses around the assignment to silence this warning 1420 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1420:17: note: use '==' to turn this assignment into an equality comparison 1420 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1426:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1426 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1426:17: note: place parentheses around the assignment to silence this warning 1426 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1426:17: note: use '==' to turn this assignment into an equality comparison 1426 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1427:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1427 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1427:17: note: place parentheses around the assignment to silence this warning 1427 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1427:17: note: use '==' to turn this assignment into an equality comparison 1427 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1433:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1433 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1433:17: note: place parentheses around the assignment to silence this warning 1433 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1433:17: note: use '==' to turn this assignment into an equality comparison 1433 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1434:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1434 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1434:17: note: place parentheses around the assignment to silence this warning 1434 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1434:17: note: use '==' to turn this assignment into an equality comparison 1434 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1444:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1444 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1444:17: note: place parentheses around the assignment to silence this warning 1444 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1444:17: note: use '==' to turn this assignment into an equality comparison 1444 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1445:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1445 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1445:17: note: place parentheses around the assignment to silence this warning 1445 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1445:17: note: use '==' to turn this assignment into an equality comparison 1445 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1455:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1455 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1455:17: note: place parentheses around the assignment to silence this warning 1455 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1455:17: note: use '==' to turn this assignment into an equality comparison 1455 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1456:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1456 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1456:17: note: place parentheses around the assignment to silence this warning 1456 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1456:17: note: use '==' to turn this assignment into an equality comparison 1456 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1462:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1462 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1462:17: note: place parentheses around the assignment to silence this warning 1462 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1462:17: note: use '==' to turn this assignment into an equality comparison 1462 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1463:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1463 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1463:17: note: place parentheses around the assignment to silence this warning 1463 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1463:17: note: use '==' to turn this assignment into an equality comparison 1463 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1473:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1473 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1473:17: note: place parentheses around the assignment to silence this warning 1473 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1473:17: note: use '==' to turn this assignment into an equality comparison 1473 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1474:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1474 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1474:17: note: place parentheses around the assignment to silence this warning 1474 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1474:17: note: use '==' to turn this assignment into an equality comparison 1474 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1480:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1480 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1480:17: note: place parentheses around the assignment to silence this warning 1480 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1480:17: note: use '==' to turn this assignment into an equality comparison 1480 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1481:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1481 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1481:17: note: place parentheses around the assignment to silence this warning 1481 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1481:17: note: use '==' to turn this assignment into an equality comparison 1481 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1491:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1491 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1491:17: note: place parentheses around the assignment to silence this warning 1491 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1491:17: note: use '==' to turn this assignment into an equality comparison 1491 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1492:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1492 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1492:17: note: place parentheses around the assignment to silence this warning 1492 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1492:17: note: use '==' to turn this assignment into an equality comparison 1492 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1498:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1498 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1498:17: note: place parentheses around the assignment to silence this warning 1498 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1498:17: note: use '==' to turn this assignment into an equality comparison 1498 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1499:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1499 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1499:17: note: place parentheses around the assignment to silence this warning 1499 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1499:17: note: use '==' to turn this assignment into an equality comparison 1499 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1510:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1510 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1510:17: note: place parentheses around the assignment to silence this warning 1510 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1510:17: note: use '==' to turn this assignment into an equality comparison 1510 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1511:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1511 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1511:17: note: place parentheses around the assignment to silence this warning 1511 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1511:17: note: use '==' to turn this assignment into an equality comparison 1511 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1532:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1532 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1532:17: note: place parentheses around the assignment to silence this warning 1532 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1532:17: note: use '==' to turn this assignment into an equality comparison 1532 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1533:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1533 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1533:17: note: place parentheses around the assignment to silence this warning 1533 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1533:17: note: use '==' to turn this assignment into an equality comparison 1533 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1547:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1547 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1547:17: note: place parentheses around the assignment to silence this warning 1547 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1547:17: note: use '==' to turn this assignment into an equality comparison 1547 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1562:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1562 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1562:17: note: place parentheses around the assignment to silence this warning 1562 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1562:17: note: use '==' to turn this assignment into an equality comparison 1562 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1568:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1568 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1568:17: note: place parentheses around the assignment to silence this warning 1568 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1568:17: note: use '==' to turn this assignment into an equality comparison 1568 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:507:28: warning: passing 'char[5]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 507 | f_register_method(T_NET, "type", method); | ^~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:510:27: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 510 | f_register_method(T_IP, "is_v4", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:564:29: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 564 | f_register_method(T_PATH, "empty", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:565:30: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 565 | f_register_method(T_CLIST, "empty", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:566:31: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 566 | f_register_method(T_ECLIST, "empty", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:569:31: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 569 | f_register_method(T_LCLIST, "empty", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:600:29: warning: passing 'char[10]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 600 | f_register_method(T_PATH, "!for_next", method); | ^~~~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:609:30: warning: passing 'char[10]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 609 | f_register_method(T_CLIST, "!for_next", method); | ^~~~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:618:31: warning: passing 'char[10]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 618 | f_register_method(T_ECLIST, "!for_next", method); | ^~~~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:627:31: warning: passing 'char[10]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 627 | f_register_method(T_LCLIST, "!for_next", method); | ^~~~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:640:37: warning: passing 'char[10]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 640 | f_register_method(T_ROUTES_BLOCK, "!for_next", method); | ^~~~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:966:28: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 966 | f_register_method(T_NET, "len", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:967:29: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 967 | f_register_method(T_PATH, "len", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:968:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 968 | f_register_method(T_CLIST, "len", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:969:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 969 | f_register_method(T_ECLIST, "len", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:971:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 971 | f_register_method(T_LCLIST, "len", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1007:28: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1007 | f_register_method(T_NET, "src", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1044:28: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1044 | f_register_method(T_NET, "dst", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1054:28: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1054 | f_register_method(T_NET, "maxlen", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1064:28: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1064 | f_register_method(T_NET, "asn", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1066:28: warning: passing 'char[3]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1066 | f_register_method(T_NET, "ip", method); | ^~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1075:28: warning: passing 'char[3]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1075 | f_register_method(T_NET, "rd", method); | ^~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1078:29: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1078 | f_register_method(T_PATH, "first", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1081:29: warning: passing 'char[5]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1081 | f_register_method(T_PATH, "last", method); | ^~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1084:29: warning: passing 'char[19]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1084 | f_register_method(T_PATH, "last_nonaggregated", method); | ^~~~~~~~~~~~~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1087:29: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1087 | f_register_method(T_PAIR, "asn", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1090:29: warning: passing 'char[5]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1090 | f_register_method(T_PAIR, "data", method); | ^~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1093:27: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1093 | f_register_method(T_LC, "asn", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1096:27: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1096 | f_register_method(T_LC, "data1", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1099:27: warning: passing 'char[6]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1099 | f_register_method(T_LC, "data2", method); | ^~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1102:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1102 | f_register_method(T_CLIST, "min", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1105:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1105 | f_register_method(T_CLIST, "max", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1108:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1108 | f_register_method(T_ECLIST, "min", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1111:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1111 | f_register_method(T_ECLIST, "max", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1114:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1114 | f_register_method(T_LCLIST, "min", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1116:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1116 | f_register_method(T_LCLIST, "max", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1257:27: warning: passing 'char[5]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1257 | f_register_method(T_IP, "mask", method); | ^~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1265:29: warning: passing 'char[8]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1265 | f_register_method(T_PATH, "prepend", method); | ^~~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1272:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1272 | f_register_method(T_CLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1286:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1286 | f_register_method(T_CLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1293:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1293 | f_register_method(T_CLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1300:30: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1300 | f_register_method(T_CLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1307:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1307 | f_register_method(T_ECLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1314:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1314 | f_register_method(T_ECLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1321:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1321 | f_register_method(T_LCLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1328:31: warning: passing 'char[4]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1328 | f_register_method(T_LCLIST, "add", method); | ^~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1335:29: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1335 | f_register_method(T_PATH, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1347:29: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1347 | f_register_method(T_PATH, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1354:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1354 | f_register_method(T_CLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1368:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1368 | f_register_method(T_CLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1375:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1375 | f_register_method(T_CLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1382:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1382 | f_register_method(T_CLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1393:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1393 | f_register_method(T_CLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1400:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1400 | f_register_method(T_ECLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1407:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1407 | f_register_method(T_ECLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1418:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1418 | f_register_method(T_ECLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1425:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1425 | f_register_method(T_LCLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1432:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1432 | f_register_method(T_LCLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1443:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1443 | f_register_method(T_LCLIST, "delete", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1454:29: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1454 | f_register_method(T_PATH, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1461:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1461 | f_register_method(T_CLIST, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1472:30: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1472 | f_register_method(T_CLIST, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1479:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1479 | f_register_method(T_ECLIST, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1490:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1490 | f_register_method(T_ECLIST, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1497:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1497 | f_register_method(T_LCLIST, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ filter/f-inst.c:1508:31: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1508 | f_register_method(T_LCLIST, "filter", method); | ^~~~~~~~ filter/decl.m4:648:45: note: passing argument to parameter 'name' here 648 | f_register_method(enum btype t, const byte *name, struct f_method *dsc) | ^ 226 warnings generated. CC -o obj/lib/a-path.o -c lib/a-path.c In file included from lib/a-path.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-path.c:11: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/a-path.c:418:12: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 418 | strcpy(b->end - 12, "..."); | ^~~~~~~~~~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ lib/a-path.c:777:18: warning: assigning to 'const char *' from 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 777 | pp->val.sp = pos - 1; | ^ ~~~~~~~ lib/a-path.c:811:13: warning: initializing 'const u8 *' (aka 'const unsigned char *') with an expression of type 'const char *const' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 811 | const u8 *p = pos->val.sp; | ^ ~~~~~~~~~~~ lib/a-path.c:837:13: warning: initializing 'const u8 *' (aka 'const unsigned char *') with an expression of type 'const char *const' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 837 | const u8 *p = pos->val.sp; | ^ ~~~~~~~~~~~ 13 warnings generated. CC -o obj/lib/a-set.o -c lib/a-set.c In file included from lib/a-set.c:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/a-set.c:13: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/a-set.c:50:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 50 | strcpy(buf, " ..."); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ lib/a-set.c:62:20: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 62 | buf += bsprintf(buf, "(%d,%d)", z[i] >> 16, z[i] & 0xffff); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:65:20: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 65 | buf += bsprintf(buf, "%R", z[i]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:68:20: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 68 | buf += bsprintf(buf, "%u", z[i]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:98:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 98 | return bsprintf(buf, "(%s, %u, %u)", kind, key, val); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:105:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 105 | return bsprintf(buf, "(%s, %R, %u)", kind, key, val); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:112:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 112 | return bsprintf(buf, "(%s, %u, %u)", kind, key, val); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:118:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 118 | return bsprintf(buf, "(generic, 0x%x, 0x%x)", key, val); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:137:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 137 | strcpy(buf, " ..."); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ lib/a-set.c:155:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 155 | return bsprintf(buf, "(%u, %u, %u)", lc.asn, lc.ldp1, lc.ldp2); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ lib/a-set.c:172:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 172 | strcpy(buf, "..."); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ lib/a-set.c:178:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 178 | buf += bsprintf(buf, "(%u, %u, %u)", d[i], d[i+1], d[i+2]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 21 warnings generated. CC -o obj/lib/bitmap.o -c lib/bitmap.c In file included from lib/bitmap.c:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/bitops.o -c lib/bitops.c In file included from lib/bitops.c:9: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/blake2s.o -c lib/blake2s.c In file included from lib/blake2s.c:20: In file included from ./lib/mac.h:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/blake2b.o -c lib/blake2b.c In file included from lib/blake2b.c:20: In file included from ./lib/mac.h:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/checksum.o -c lib/checksum.c In file included from lib/checksum.c:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/defer.o -c lib/defer.c In file included from lib/defer.c:9: In file included from ./lib/defer.h:19: In file included from ./lib/event.h:12: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/defer.c:9: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 2 warnings generated. CC -o obj/lib/event.o -c lib/event.c In file included from lib/event.c:24: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/event.c:26: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/event.c:27: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/event.c:249:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 249 | else | ^ lib/event.c:318:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 318 | while (e = atomic_load_explicit(ep, memory_order_acquire)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/event.c:318:12: note: place parentheses around the assignment to silence this warning 318 | while (e = atomic_load_explicit(ep, memory_order_acquire)) | ^ | ( ) lib/event.c:318:12: note: use '==' to turn this assignment into an equality comparison 318 | while (e = atomic_load_explicit(ep, memory_order_acquire)) | ^ | == 5 warnings generated. CC -o obj/lib/flowspec.o -c lib/flowspec.c In file included from lib/flowspec.c:36: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/flowspec.c:38: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/flowspec.c:38: In file included from ./conf/conf.h:17: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/flowspec.c:612:22: warning: address of array 'f->data' will always evaluate to 'true' [-Wpointer-bool-conversion] 612 | ASSERT_DIE(f && f->data); | ~~ ~~~^~~~ ./lib/birdlib.h:254:34: note: expanded from macro 'ASSERT_DIE' 254 | #define ASSERT_DIE(x) do { if (!(x)) bug("Assertion '%s' failed at %s:%d", #x, __FILE__, __LINE__); } while(0) | ^ lib/flowspec.c:629:22: warning: address of array 'f->data' will always evaluate to 'true' [-Wpointer-bool-conversion] 629 | ASSERT_DIE(f && f->data); | ~~ ~~~^~~~ ./lib/birdlib.h:254:34: note: expanded from macro 'ASSERT_DIE' 254 | #define ASSERT_DIE(x) do { if (!(x)) bug("Assertion '%s' failed at %s:%d", #x, __FILE__, __LINE__); } while(0) | ^ lib/flowspec.c:1321:14: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1321 | .start = buf, | ^~~ lib/flowspec.c:1322:12: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1322 | .pos = buf, | ^~~ lib/flowspec.c:1323:12: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1323 | .end = buf + blen, | ^~~~~~~~~~ lib/flowspec.c:1368:44: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1368 | b.pos = b.start + MIN(blen - 6, strlen(b.start)); | ^~~~~~~ ./lib/birdlib.h:70:25: note: expanded from macro 'MIN' 70 | #define MIN(a,b) MIN_(a,b) | ^ ./lib/birdlib.h:63:26: note: expanded from macro 'MIN_' 63 | #define MIN_(a,b) (((a)<(b))?(a):(b)) | ^ /usr/include/string.h:100:28: note: passing argument to parameter here 100 | size_t strlen(const char *) __pure; | ^ lib/flowspec.c:1368:44: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1368 | b.pos = b.start + MIN(blen - 6, strlen(b.start)); | ^~~~~~~ ./lib/birdlib.h:70:25: note: expanded from macro 'MIN' 70 | #define MIN(a,b) MIN_(a,b) | ^ ./lib/birdlib.h:63:35: note: expanded from macro 'MIN_' 63 | #define MIN_(a,b) (((a)<(b))?(a):(b)) | ^ /usr/include/string.h:100:28: note: passing argument to parameter here 100 | size_t strlen(const char *) __pure; | ^ 10 warnings generated. CC -o obj/lib/idm.o -c lib/idm.c In file included from lib/idm.c:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/ip.o -c lib/ip.c In file included from lib/ip.c:20: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/lists.o -c lib/lists.c CC -o obj/lib/lockfree.o -c lib/lockfree.c In file included from lib/lockfree.c:11: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:19: In file included from ./lib/event.h:12: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/lockfree.c:11: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/lockfree.c:11: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/lockfree.c:11: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 4 warnings generated. CC -o obj/lib/mac.o -c lib/mac.c In file included from lib/mac.c:30: In file included from ./lib/mac.h:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/md5.o -c lib/md5.c In file included from lib/md5.c:13: In file included from ./lib/md5.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/mempool.o -c lib/mempool.c In file included from lib/mempool.c:24: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/mempool.c:254:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 254 | while (c = m->current->next) | ~~^~~~~~~~~~~~~~~~~~ lib/mempool.c:254:12: note: place parentheses around the assignment to silence this warning 254 | while (c = m->current->next) | ^ | ( ) lib/mempool.c:254:12: note: use '==' to turn this assignment into an equality comparison 254 | while (c = m->current->next) | ^ | == 2 warnings generated. CC -o obj/lib/net.o -c lib/net.c In file included from lib/net.c:2: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/netindex.o -c lib/netindex.c In file included from lib/netindex.c:10: In file included from ./lib/netindex_private.h:12: In file included from ./lib/netindex.h:12: In file included from ./lib/bitmap.h:13: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/netindex.c:10: In file included from ./lib/netindex_private.h:12: In file included from ./lib/netindex.h:14: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/netindex.c:10: In file included from ./lib/netindex_private.h:12: In file included from ./lib/netindex.h:14: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/netindex.c:10: In file included from ./lib/netindex_private.h:12: In file included from ./lib/netindex.h:14: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/netindex.c:10: ./lib/netindex_private.h:39:3: warning: redefinition of typedef 'netindex_hash' is a C11 feature [-Wtypedef-redefinition] 39 | } netindex_hash; | ^ ./lib/netindex.h:28:29: note: previous definition is here 28 | typedef union netindex_hash netindex_hash; | ^ lib/netindex.c:30:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 30 | if (step > 0) SPINHASH_REHASH_UP(v,NETINDEX,struct netindex,step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:451:21: note: expanded from macro 'SPINHASH_REHASH_UP' 451 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ lib/netindex.c:30:17: note: place parentheses around the assignment to silence this warning ./lib/hash.h:451:21: note: expanded from macro 'SPINHASH_REHASH_UP' 451 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/netindex.c:30:17: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:451:21: note: expanded from macro 'SPINHASH_REHASH_UP' 451 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/netindex.c:31:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 31 | if (step < 0) SPINHASH_REHASH_DOWN(v,NETINDEX,struct netindex,-step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:475:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 475 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ lib/netindex.c:31:17: note: place parentheses around the assignment to silence this warning ./lib/hash.h:475:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 475 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/netindex.c:31:17: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:475:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 475 | for (type *n; n = _cur->block[i].data; ) { \ | ^ 7 warnings generated. CC -o obj/lib/patmatch.o -c lib/patmatch.c In file included from lib/patmatch.c:7: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/printf.o -c lib/printf.c In file included from lib/printf.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/printf.c:16: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/printf.c:16: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/printf.c:16: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/printf.c:16: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 5 warnings generated. CC -o obj/lib/rcu.o -c lib/rcu.c In file included from lib/rcu.c:16: In file included from ./lib/io-loop.h:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/rcu.c:16: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/rcu.c:49:4: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 49 | t = atomic_load_explicit(tp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu.c:49:4: note: place parentheses around the assignment to silence this warning 49 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | ( ) lib/rcu.c:49:4: note: use '==' to turn this assignment into an equality comparison 49 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | == lib/rcu.c:52:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 52 | if (critical = rcu_critical(t, phase)) | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu.c:52:20: note: place parentheses around the assignment to silence this warning 52 | if (critical = rcu_critical(t, phase)) | ^ | ( ) lib/rcu.c:52:20: note: use '==' to turn this assignment into an equality comparison 52 | if (critical = rcu_critical(t, phase)) | ^ | == lib/rcu.c:87:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 87 | t = atomic_load_explicit(tp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu.c:87:9: note: place parentheses around the assignment to silence this warning 87 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | ( ) lib/rcu.c:87:9: note: use '==' to turn this assignment into an equality comparison 87 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | == 5 warnings generated. CC -o obj/lib/resource.o -c lib/resource.c In file included from lib/resource.c:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/sha1.o -c lib/sha1.c In file included from lib/sha1.c:15: In file included from ./lib/sha1.h:18: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/sha256.o -c lib/sha256.c In file included from lib/sha256.c:12: In file included from ./lib/sha256.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/sha512.o -c lib/sha512.c In file included from lib/sha512.c:12: In file included from ./lib/sha512.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/slab.o -c lib/slab.c In file included from lib/slab.c:32: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/slab.c:177: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == lib/slab.c:290:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 290 | if (h = s->empty_heads.first) | ~~^~~~~~~~~~~~~~~~~~~~~~ lib/slab.c:290:9: note: place parentheses around the assignment to silence this warning 290 | if (h = s->empty_heads.first) | ^ | ( ) lib/slab.c:290:9: note: use '==' to turn this assignment into an equality comparison 290 | if (h = s->empty_heads.first) | ^ | == 3 warnings generated. CC -o obj/lib/slists.o -c lib/slists.c In file included from lib/slists.c:11: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/slists.c:76:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 76 | if (f = n->readers) | ~~^~~~~~~~~~~~ lib/slists.c:76:9: note: place parentheses around the assignment to silence this warning 76 | if (f = n->readers) | ^ | ( ) lib/slists.c:76:9: note: use '==' to turn this assignment into an equality comparison 76 | if (f = n->readers) | ^ | == 2 warnings generated. CC -o obj/lib/strtoul.o -c lib/strtoul.c In file included from lib/strtoul.c:9: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/lib/tbf.o -c lib/tbf.c In file included from lib/tbf.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/tbf.c:11: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 2 warnings generated. CC -o obj/lib/timer.o -c lib/timer.c In file included from lib/timer.c:33: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/timer.c:37: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/timer.c:39: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == lib/timer.c:172:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 172 | while (t = timers_first(loop)) | ~~^~~~~~~~~~~~~~~~~~~~ lib/timer.c:172:12: note: place parentheses around the assignment to silence this warning 172 | while (t = timers_first(loop)) | ^ | ( ) lib/timer.c:172:12: note: use '==' to turn this assignment into an equality comparison 172 | while (t = timers_first(loop)) | ^ | == lib/timer.c:325:17: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 325 | if (!strfusec(tbuf, tbuf_size, fmt, t2)) | ^~~~ lib/timer.c:269:16: note: passing argument to parameter 'buf' here 269 | strfusec(char *buf, int size, const char *fmt, uint usec) | ^ lib/timer.c:328:27: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 328 | return strftime(x, max, tbuf, &tm); | ^~~~ /usr/include/time.h:129:67: note: passing argument to parameter here 129 | size_t strftime(char * __restrict, size_t, const char * __restrict, | ^ 6 warnings generated. CC -o obj/lib/xmalloc.o -c lib/xmalloc.c In file included from lib/xmalloc.c:11: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from lib/xmalloc.c:13: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 2 warnings generated. CC -o obj/nest/cli.o -c nest/cli.c In file included from nest/cli.c:66: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cli.c:67: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cli.c:67: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cli.c:67: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == nest/cli.c:132:18: warning: passing 'byte[512]' (aka 'unsigned char[512]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 132 | size = bsprintf(buf, " "); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/cli.c:134:18: warning: passing 'byte[512]' (aka 'unsigned char[512]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 134 | size = bsprintf(buf, "%04d-", cd); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/cli.c:144:23: warning: passing 'byte[512]' (aka 'unsigned char[512]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 144 | size = bsprintf(buf, "%04d ", cd); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/cli.c:150:20: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 150 | cnt = bvsnprintf(buf+size, sizeof(buf)-size-1, msg, args); | ^~~~~~~~ ./lib/string.h:21:22: note: passing argument to parameter 'str' here 21 | int bvsnprintf(char *str, int size, const char *fmt, va_list args) ACCESS_WRITE(1, 2); | ^ nest/cli.c:263:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 263 | cli_rh_len = strlen(c->rx_buf); | ^~~~~~~~~ /usr/include/string.h:100:28: note: passing argument to parameter here 100 | size_t strlen(const char *) __pure; | ^ 9 warnings generated. CC -o obj/nest/cmds.o -c nest/cmds.c In file included from nest/cmds.c:9: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/cmds.c:12: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/cmds.c:31:18: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 31 | tm_format_time(tim, tf, current_time()); | ^~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/cmds.c:35:18: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 35 | tm_format_time(tim, tf, boot_time); | ^~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/cmds.c:37:18: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 37 | tm_format_time(tim, tf, gr->load_time); | ^~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ 18 warnings generated. CC -o obj/nest/iface.o -c nest/iface.c In file included from nest/iface.c:28: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:29: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:29: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:29: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:29: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/iface.c:30: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/iface.c:31: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/iface.c:552:4: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 552 | WALK_LIST_DELSAFE(a, b, i->addrs) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/iface.c:552:4: note: place parentheses around the assignment to silence this warning 552 | WALK_LIST_DELSAFE(a, b, i->addrs) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/iface.c:552:4: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/iface.c:1055:19: warning: initializing 'const char *' with an expression of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1055 | const char *t = p->pattern; | ^ ~~~~~~~~~~ nest/iface.c:1066:18: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1066 | if (!patmatch(t, i->name)) | ^ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ nest/iface.c:1066:21: warning: passing 'char[16]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1066 | if (!patmatch(t, i->name)) | ^~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ nest/iface.c:1113:42: warning: passing 'const byte *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1113 | ((x->pattern != y->pattern) && strcmp(x->pattern, y->pattern)) || | ^~~~~~~~~~ /usr/include/string.h:85:25: note: passing argument to parameter here 85 | int strcmp(const char *, const char *) __pure; | ^ nest/iface.c:1113:54: warning: passing 'const byte *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1113 | ((x->pattern != y->pattern) && strcmp(x->pattern, y->pattern)) || | ^~~~~~~~~~ /usr/include/string.h:85:39: note: passing argument to parameter here 85 | int strcmp(const char *, const char *) __pure; | ^ nest/iface.c:1149:7: warning: assigning to 'byte *' (aka 'unsigned char *') from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1149 | flg = (a->flags & IA_PRIMARY) ? "Preferred, " : (a->flags & IA_SECONDARY) ? "Secondary, " : ""; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/iface.c:1152:14: warning: passing 'byte[55]' (aka 'unsigned char[55]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1152 | bsprintf(opp, "opposite %I, ", a->opposite); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/iface.c:1216:11: warning: passing 'byte[56]' (aka 'unsigned char[56]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1216 | bsprintf(a4, "%I/%d", i->addr4->ip, i->addr4->prefix.pxlen); | ^~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/iface.c:1221:11: warning: passing 'byte[56]' (aka 'unsigned char[56]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1221 | bsprintf(a6, "%I/%d", i->addr6->ip, i->addr6->prefix.pxlen); | ^~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 25 warnings generated. CC -o obj/nest/locks.o -c nest/locks.c In file included from nest/locks.c:34: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/locks.c:37: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/locks.c:37: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/locks.c:37: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/locks.c:37: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 5 warnings generated. CC -o obj/nest/mpls.o -c nest/mpls.c In file included from nest/mpls.c:84: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:85: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/mpls.c:86: In file included from ./nest/mpls-internal.h:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/mpls.c:87: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/mpls.c:290:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 290 | WALK_LIST_DELSAFE(r, r2, old_ranges) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/mpls.c:290:3: note: place parentheses around the assignment to silence this warning 290 | WALK_LIST_DELSAFE(r, r2, old_ranges) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/mpls.c:290:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/mpls.c:326:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 326 | WALK_LIST_DELSAFE(r, rnext, m->ranges) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/mpls.c:326:3: note: place parentheses around the assignment to silence this warning 326 | WALK_LIST_DELSAFE(r, rnext, m->ranges) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/mpls.c:326:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/mpls.c:379:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 379 | WALK_LIST_DELSAFE(m, m2, old_domains) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/mpls.c:379:3: note: place parentheses around the assignment to silence this warning 379 | WALK_LIST_DELSAFE(m, m2, old_domains) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/mpls.c:379:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/mpls.c:485:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 485 | WALK_LIST_BACKWARDS_DELSAFE(r, rnext, m->ranges) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:69:27: note: expanded from macro 'WALK_LIST_BACKWARDS_DELSAFE' 69 | for(n=TAIL(list); prv=(void *)((NODE (n))->prev); n=(void *) prv) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/mpls.c:485:3: note: place parentheses around the assignment to silence this warning 485 | WALK_LIST_BACKWARDS_DELSAFE(r, rnext, m->ranges) | ^ | ( ./lib/lists.h:69:27: note: expanded from macro 'WALK_LIST_BACKWARDS_DELSAFE' 69 | for(n=TAIL(list); prv=(void *)((NODE (n))->prev); n=(void *) prv) | ^ nest/mpls.c:485:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:69:27: note: expanded from macro 'WALK_LIST_BACKWARDS_DELSAFE' 69 | for(n=TAIL(list); prv=(void *)((NODE (n))->prev); n=(void *) prv) | ^ nest/mpls.c:1142:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1142 | HASH_REMOVE2(m->net_hash, NET, m->pool, fec); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ nest/mpls.c:1142:5: note: place parentheses around the assignment to silence this warning ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ nest/mpls.c:1142:5: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ nest/mpls.c:1147:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1147 | HASH_REMOVE2(m->attrs_hash, RTA, m->pool, fec); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ nest/mpls.c:1147:5: note: place parentheses around the assignment to silence this warning ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ nest/mpls.c:1147:5: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ nest/mpls.c:1179:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1179 | HASH_REMOVE2(m->label_hash, LABEL, m->pool, fec); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ nest/mpls.c:1179:3: note: place parentheses around the assignment to silence this warning ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ nest/mpls.c:1179:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ 22 warnings generated. CC -o obj/nest/neighbor.o -c nest/neighbor.c In file included from nest/neighbor.c:51: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:52: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:52: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:52: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:52: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:53: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:53: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:53: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:53: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/neighbor.c:53: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/nest/password.o -c nest/password.c In file included from nest/password.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/password.c:12: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/password.c:12: In file included from ./conf/conf.h:17: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 3 warnings generated. CC -o obj/nest/proto.o -c nest/proto.c In file included from nest/proto.c:11: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/proto.c:12: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/proto.c:22: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/proto.c:529:35: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 529 | for (struct lfjour_item *it; it = lfjour_get(&s->digest_recipient); ) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:529:35: note: place parentheses around the assignment to silence this warning 529 | for (struct lfjour_item *it; it = lfjour_get(&s->digest_recipient); ) | ^ | ( ) nest/proto.c:529:35: note: use '==' to turn this assignment into an equality comparison 529 | for (struct lfjour_item *it; it = lfjour_get(&s->digest_recipient); ) | ^ | == nest/proto.c:555:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 555 | else | ^ nest/proto.c:575:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 575 | it = lfjour_get(&s->digest_recipient); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:575:10: note: place parentheses around the assignment to silence this warning 575 | it = lfjour_get(&s->digest_recipient); | ^ | ( ) nest/proto.c:575:10: note: use '==' to turn this assignment into an equality comparison 575 | it = lfjour_get(&s->digest_recipient); | ^ | == nest/proto.c:910:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 910 | RT_FEED_WALK(&c->reimporter, f) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:910:3: note: place parentheses around the assignment to silence this warning 910 | RT_FEED_WALK(&c->reimporter, f) | ^ | ( ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/proto.c:910:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/proto.c:1150:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1150 | else | ^ nest/proto.c:1783:13: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1783 | sym = cf_find_symbol(new, oc->name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./conf/conf.h:271:16: note: expanded from macro 'cf_find_symbol' 271 | )((where), (what)) | ^~~~~~ ./conf/conf.h:265:87: note: passing argument to parameter 'c' here 265 | static inline struct symbol *cf_find_symbol_cfg(const struct config *cfg, const byte *c) | ^ nest/proto.c:1790:26: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1790 | struct symbol *parsym = cf_find_symbol(new, oc->parent->name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./conf/conf.h:271:16: note: expanded from macro 'cf_find_symbol' 271 | )((where), (what)) | ^~~~~~ ./conf/conf.h:265:87: note: passing argument to parameter 'c' here 265 | static inline struct symbol *cf_find_symbol_cfg(const struct config *cfg, const byte *c) | ^ nest/proto.c:1797:29: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1797 | sym = cf_get_symbol(new, oc->name); | ^~~~~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ nest/proto.c:2814:18: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2814 | tm_format_time(tbuf, tf, p->last_state_change); | ^~~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/proto.c:2829:20: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2829 | tm_format_time(tbuf, tf, p->last_reconfiguration); | ^~~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/proto.c:2833:22: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2833 | tm_format_time(tbuf, tf, p->last_restart); | ^~~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/proto.c:3034:27: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3034 | if (!patt || patmatch(patt, p->name)) | ^~~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ nest/proto.c:3034:33: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3034 | if (!patt || patmatch(patt, p->name)) | ^~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ 28 warnings generated. CC -o obj/nest/proto-build.o -c obj/nest/proto-build.c CC -o obj/nest/rt-attr.o -c nest/rt-attr.c In file included from nest/rt-attr.c:47: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:48: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-attr.c:49: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/rt-attr.c:51: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/rt-attr.c:103:15: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 103 | bsnprintf(buf, size, "unknown"); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:105:15: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 105 | bsnprintf(buf, size, "%s", rta_src_names[a->u.data]); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:355:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 355 | HASH_WALK_FILTER(o->hash, next, src, sp) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:210:34: note: expanded from macro 'HASH_WALK_FILTER' 210 | for (nn = (v).data + _i; n = *nn; \ | ~~^~~~~ nest/rt-attr.c:355:3: note: place parentheses around the assignment to silence this warning 355 | HASH_WALK_FILTER(o->hash, next, src, sp) | ^ | ( ./lib/hash.h:210:34: note: expanded from macro 'HASH_WALK_FILTER' 210 | for (nn = (v).data + _i; n = *nn; \ | ^ nest/rt-attr.c:355:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:210:34: note: expanded from macro 'HASH_WALK_FILTER' 210 | for (nn = (v).data + _i; n = *nn; \ | ^ nest/rt-attr.c:1007:4: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1007 | else | ^ nest/rt-attr.c:1154:9: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1154 | strcpy(buf, " ..."); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ nest/rt-attr.c:1158:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1158 | buf += bsprintf(buf, "%s ", names[i]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1163:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1163 | bsprintf(buf, "%08x ", data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1182:11: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1182 | strcpy(buf, " ..."); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ nest/rt-attr.c:1188:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1188 | buf += bsprintf(buf, "%02x", ad->data[i]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1277:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1277 | s = bsnprintf(buf, size, "via %I %I table %s", had->he->addr, had->he->link, had->he->owner->name); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:1279:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1279 | s = bsnprintf(buf, size, "via %I table %s", had->he->addr, had->he->owner->name); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:1285:17: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1285 | s = bsnprintf((buf += s), (size -= s), " mpls"); | ^~~~~~~~~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:1287:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1287 | s = bsnprintf((buf += s), (size -= s), " %u", had->labels[i]); | ^~~~~~~~~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:1329:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1329 | bsprintf(pos, "%u", e->u.data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1335:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1335 | bsprintf(pos, "%I", *(ip_addr *) ad->data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1338:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1338 | bsprintf(pos, "%R", e->u.data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1353:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1353 | bsnprintf(pos, end - pos, "%s", (const char *) ad->data); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-attr.c:1362:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1362 | bsprintf(pos, "", e->type); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1450:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1450 | if (e = e->next) | ~~^~~~~~~~~ nest/rt-attr.c:1450:13: note: place parentheses around the assignment to silence this warning 1450 | if (e = e->next) | ^ | ( ) nest/rt-attr.c:1450:13: note: use '==' to turn this assignment into an equality comparison 1450 | if (e = e->next) | ^ | == nest/rt-attr.c:1537:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1537 | if (step > 0) SPINHASH_REHASH_UP (&rta_hash_table, RTAH, struct ea_storage, step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:451:21: note: expanded from macro 'SPINHASH_REHASH_UP' 451 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ nest/rt-attr.c:1537:17: note: place parentheses around the assignment to silence this warning ./lib/hash.h:451:21: note: expanded from macro 'SPINHASH_REHASH_UP' 451 | for (type *n; n = _cur->block[i].data; ) { \ | ^ nest/rt-attr.c:1537:17: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:451:21: note: expanded from macro 'SPINHASH_REHASH_UP' 451 | for (type *n; n = _cur->block[i].data; ) { \ | ^ nest/rt-attr.c:1538:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1538 | if (step < 0) SPINHASH_REHASH_DOWN(&rta_hash_table, RTAH, struct ea_storage, -step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:475:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 475 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ nest/rt-attr.c:1538:17: note: place parentheses around the assignment to silence this warning ./lib/hash.h:475:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 475 | for (type *n; n = _cur->block[i].data; ) { \ | ^ nest/rt-attr.c:1538:17: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:475:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 475 | for (type *n; n = _cur->block[i].data; ) { \ | ^ nest/rt-attr.c:1551:34: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1551 | for (struct ea_storage *ea; ea = *eap; eap = &RTAH_NEXT(ea)) | ~~~^~~~~~ nest/rt-attr.c:1551:34: note: place parentheses around the assignment to silence this warning 1551 | for (struct ea_storage *ea; ea = *eap; eap = &RTAH_NEXT(ea)) | ^ | ( ) nest/rt-attr.c:1551:34: note: use '==' to turn this assignment into an equality comparison 1551 | for (struct ea_storage *ea; ea = *eap; eap = &RTAH_NEXT(ea)) | ^ | == nest/rt-attr.c:1595:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1595 | if (rr = ea_lookup_existing(o, squash_upto, oid)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-attr.c:1595:10: note: place parentheses around the assignment to silence this warning 1595 | if (rr = ea_lookup_existing(o, squash_upto, oid)) | ^ | ( ) nest/rt-attr.c:1595:10: note: use '==' to turn this assignment into an equality comparison 1595 | if (rr = ea_lookup_existing(o, squash_upto, oid)) | ^ | == 38 warnings generated. CC -o obj/nest/rt-dev.o -c nest/rt-dev.c In file included from nest/rt-dev.c:18: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:19: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:19: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:19: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:19: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-dev.c:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/nest/rt-export.o -c nest/rt-export.c In file included from nest/rt-export.c:9: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:10: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-export.c:11: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/rt-export.c:103:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 103 | else if (feed = rt_export_next_feed(&r->feeder, &r->seq_map)) | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-export.c:103:21: note: place parentheses around the assignment to silence this warning 103 | else if (feed = rt_export_next_feed(&r->feeder, &r->seq_map)) | ^ | ( ) nest/rt-export.c:103:21: note: use '==' to turn this assignment into an equality comparison 103 | else if (feed = rt_export_next_feed(&r->feeder, &r->seq_map)) | ^ | == 13 warnings generated. CC -o obj/nest/rt-fib.o -c nest/rt-fib.c In file included from nest/rt-fib.c:57: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-fib.c:58: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == nest/rt-fib.c:190:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 190 | while (e = x) | ~~^~~ nest/rt-fib.c:190:16: note: place parentheses around the assignment to silence this warning 190 | while (e = x) | ^ | ( ) nest/rt-fib.c:190:16: note: use '==' to turn this assignment into an equality comparison 190 | while (e = x) | ^ | == nest/rt-fib.c:465:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 465 | if (it = e->readers) | ~~~^~~~~~~~~~~~ nest/rt-fib.c:465:11: note: place parentheses around the assignment to silence this warning 465 | if (it = e->readers) | ^ | ( ) nest/rt-fib.c:465:11: note: use '==' to turn this assignment into an equality comparison 465 | if (it = e->readers) | ^ | == nest/rt-fib.c:515:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 515 | if (n = f->hash_table[h]) | ~~^~~~~~~~~~~~~~~~~~ nest/rt-fib.c:515:11: note: place parentheses around the assignment to silence this warning 515 | if (n = f->hash_table[h]) | ^ | ( ) nest/rt-fib.c:515:11: note: use '==' to turn this assignment into an equality comparison 515 | if (n = f->hash_table[h]) | ^ | == nest/rt-fib.c:518:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 518 | if (i->next = n->readers) | ~~~~~~~~^~~~~~~~~~~~ nest/rt-fib.c:518:14: note: place parentheses around the assignment to silence this warning 518 | if (i->next = n->readers) | ^ | ( ) nest/rt-fib.c:518:14: note: use '==' to turn this assignment into an equality comparison 518 | if (i->next = n->readers) | ^ | == nest/rt-fib.c:550:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 550 | if (k = i->next) | ~~^~~~~~~~~ nest/rt-fib.c:550:9: note: place parentheses around the assignment to silence this warning 550 | if (k = i->next) | ^ | ( ) nest/rt-fib.c:550:9: note: use '==' to turn this assignment into an equality comparison 550 | if (k = i->next) | ^ | == nest/rt-fib.c:563:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 563 | if (j = n->readers) | ~~^~~~~~~~~~~~ nest/rt-fib.c:563:9: note: place parentheses around the assignment to silence this warning 563 | if (j = n->readers) | ^ | ( ) nest/rt-fib.c:563:9: note: use '==' to turn this assignment into an equality comparison 563 | if (j = n->readers) | ^ | == nest/rt-fib.c:573:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 573 | if (n = n->next) | ~~^~~~~~~~~ nest/rt-fib.c:573:9: note: place parentheses around the assignment to silence this warning 573 | if (n = n->next) | ^ | ( ) nest/rt-fib.c:573:9: note: use '==' to turn this assignment into an equality comparison 573 | if (n = n->next) | ^ | == nest/rt-fib.c:577:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 577 | if (n = f->hash_table[hpos]) | ~~^~~~~~~~~~~~~~~~~~~~~ nest/rt-fib.c:577:11: note: place parentheses around the assignment to silence this warning 577 | if (n = f->hash_table[hpos]) | ^ | ( ) nest/rt-fib.c:577:11: note: use '==' to turn this assignment into an equality comparison 577 | if (n = f->hash_table[hpos]) | ^ | == 17 warnings generated. CC -o obj/nest/rt-show.o -c nest/rt-show.c In file included from nest/rt-show.c:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:13: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-show.c:14: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/rt-show.c:15: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/rt-show.c:55:18: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 55 | tm_format_time(tm, c->tf ?: &d->tf_route, e->lastmod); | ^~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/rt-show.c:58:14: warning: passing 'byte[47]' (aka 'unsigned char[47]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 58 | bsprintf(from, " from %I", a_from); | ^~~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-show.c:70:14: warning: passing 'byte[256]' (aka 'unsigned char[256]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 70 | bsprintf(info, " (%d)", rt_get_preference(e)); | ^~~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-show.c:105:33: warning: passing 'char[256]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 105 | ea_show_hostentry(&had->ad, hetext, sizeof hetext); | ^~~~~~ ./nest/route.h:907:54: note: passing argument to parameter 'buf' here 907 | void ea_show_hostentry(const struct adata *ad, byte *buf, uint size); | ^ nest/rt-show.c:145:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 145 | else | ^ nest/rt-show.c:213:33: warning: passing 'byte[273]' (aka 'unsigned char[273]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 213 | net_format(feed->ni->addr, ia, sizeof(ia)); | ^~ ./lib/net.h:657:41: note: passing argument to parameter 'buf' here 657 | int net_format(const net_addr *N, char *buf, int buflen) ACCESS_WRITE(2, 3); | ^ nest/rt-show.c:215:16: warning: passing 'byte[273]' (aka 'unsigned char[273]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 215 | bsnprintf(ia, sizeof(ia), "%N mpls %d", feed->ni->addr, label); | ^~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-show.c:248:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 248 | WALK_LIST_DELSAFE(tab, tabx, d->tables) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/rt-show.c:248:3: note: place parentheses around the assignment to silence this warning 248 | WALK_LIST_DELSAFE(tab, tabx, d->tables) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/rt-show.c:248:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/rt-show.c:296:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 296 | RT_FEED_WALK(&d->tab->req, f) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-show.c:296:3: note: place parentheses around the assignment to silence this warning 296 | RT_FEED_WALK(&d->tab->req, f) | ^ | ( ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/rt-show.c:296:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/rt-show.c:421:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 421 | WALK_LIST_DELSAFE(tab, tabx, d->tables) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/rt-show.c:421:3: note: place parentheses around the assignment to silence this warning 421 | WALK_LIST_DELSAFE(tab, tabx, d->tables) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/rt-show.c:421:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ 25 warnings generated. CC -o obj/nest/rt-table.o -c nest/rt-table.c In file included from nest/rt-table.c:96: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:97: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from nest/rt-table.c:98: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from nest/rt-table.c:115: In file included from ./proto/bgp/bgp.h:17: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/rt-table.c:381:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 381 | case NET_IP4: TW(4, FVR_IP); | ~~~~~~^~~~~~~ nest/rt-table.c:362:5: note: expanded from macro 'TW' 362 | { what(ipv, var); } \ | ^~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:381:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:381:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:382:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 382 | case NET_VPN4: TW(4, FVR_VPN); | ~~~~~~^~~~~~~~ nest/rt-table.c:362:5: note: expanded from macro 'TW' 362 | { what(ipv, var); } \ | ^~~~~~~~~~~~~~ nest/rt-table.c:377:90: note: expanded from macro 'FVR_VPN' 377 | net_addr_vpn##ipv _var0 = NET_ADDR_VPN##ipv(var.prefix, var.pxlen, nu->vpn##ipv.rd); FVR_IP(ipv, _var0); | ^~~~~~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:382:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:382:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:383:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 383 | case NET_IP6: TW(6, FVR_IP); | ~~~~~~^~~~~~~ nest/rt-table.c:362:5: note: expanded from macro 'TW' 362 | { what(ipv, var); } \ | ^~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:383:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:383:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:384:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 384 | case NET_VPN6: TW(6, FVR_VPN); | ~~~~~~^~~~~~~~ nest/rt-table.c:362:5: note: expanded from macro 'TW' 362 | { what(ipv, var); } \ | ^~~~~~~~~~~~~~ nest/rt-table.c:377:90: note: expanded from macro 'FVR_VPN' 377 | net_addr_vpn##ipv _var0 = NET_ADDR_VPN##ipv(var.prefix, var.pxlen, nu->vpn##ipv.rd); FVR_IP(ipv, _var0); | ^~~~~~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:384:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:384:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:393:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 393 | case NET_IP4: FW(4, FVR_IP); | ~~~~~~^~~~~~~ nest/rt-table.c:368:5: note: expanded from macro 'FW' 368 | what(ipv, nuc.ip##ipv); if (!nuc.n.pxlen) return NULL; \ | ^~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:393:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:393:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:394:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 394 | case NET_VPN4: FW(4, FVR_VPN); | ~~~~~~^~~~~~~~ nest/rt-table.c:368:5: note: expanded from macro 'FW' 368 | what(ipv, nuc.ip##ipv); if (!nuc.n.pxlen) return NULL; \ | ^~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:377:90: note: expanded from macro 'FVR_VPN' 377 | net_addr_vpn##ipv _var0 = NET_ADDR_VPN##ipv(var.prefix, var.pxlen, nu->vpn##ipv.rd); FVR_IP(ipv, _var0); | ^~~~~~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:394:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:394:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:395:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 395 | case NET_IP6: FW(6, FVR_IP); | ~~~~~~^~~~~~~ nest/rt-table.c:368:5: note: expanded from macro 'FW' 368 | what(ipv, nuc.ip##ipv); if (!nuc.n.pxlen) return NULL; \ | ^~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:395:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:395:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:396:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 396 | case NET_VPN6: FW(6, FVR_VPN); | ~~~~~~^~~~~~~~ nest/rt-table.c:368:5: note: expanded from macro 'FW' 368 | what(ipv, nuc.ip##ipv); if (!nuc.n.pxlen) return NULL; \ | ^~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:377:90: note: expanded from macro 'FVR_VPN' 377 | net_addr_vpn##ipv _var0 = NET_ADDR_VPN##ipv(var.prefix, var.pxlen, nu->vpn##ipv.rd); FVR_IP(ipv, _var0); | ^~~~~~~~~~~~~~~~~~ nest/rt-table.c:374:19: note: expanded from macro 'FVR_IP' 374 | net *r; if (r = net_find_valid(tr, nh, (net_addr *) &var)) return r; | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:396:29: note: place parentheses around the assignment to silence this warning nest/rt-table.c:396:29: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:457:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 457 | int x = bsnprintf(buf, size, "as %u max %u, ", rad->u[upos].asn, rad->u[upos].max_pxlen); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-table.c:462:17: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 462 | bsnprintf(buf, size, " ... "); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ nest/rt-table.c:490:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 490 | RT_EXPORT_WALK(&rag->src, u) TMP_SAVED | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:490:3: note: place parentheses around the assignment to silence this warning 490 | RT_EXPORT_WALK(&rag->src, u) TMP_SAVED | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:490:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:564:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 564 | else if (rad->u[p].max_pxlen == max_pxlen) | ^ nest/rt-table.c:809:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 809 | if (n) NET_READ_WALK_ROUTES(tr, n, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:809:12: note: place parentheses around the assignment to silence this warning 809 | if (n) NET_READ_WALK_ROUTES(tr, n, ep, e) | ^ | ( nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:809:12: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:997:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 997 | if (better = new->src->owner->class->rte_better) | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:997:14: note: place parentheses around the assignment to silence this warning 997 | if (better = new->src->owner->class->rte_better) | ^ | ( ) nest/rt-table.c:997:14: note: use '==' to turn this assignment into an equality comparison 997 | if (better = new->src->owner->class->rte_better) | ^ | == nest/rt-table.c:1016:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1016 | if (mergable = pri->src->owner->class->rte_mergable) | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1016:16: note: place parentheses around the assignment to silence this warning 1016 | if (mergable = pri->src->owner->class->rte_mergable) | ^ | ( ) nest/rt-table.c:1016:16: note: use '==' to turn this assignment into an equality comparison 1016 | if (mergable = pri->src->owner->class->rte_mergable) | ^ | == nest/rt-table.c:1069:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1069 | NET_READ_WALK_ROUTES(tr, n, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1069:3: note: place parentheses around the assignment to silence this warning 1069 | NET_READ_WALK_ROUTES(tr, n, ep, e) | ^ | ( nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:1069:3: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:1097:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1097 | NET_READ_WALK_ROUTES(tr, n, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1097:3: note: place parentheses around the assignment to silence this warning 1097 | NET_READ_WALK_ROUTES(tr, n, ep, e) | ^ | ( nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:1097:3: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:1342:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1342 | RT_EXPORT_WALK(&c->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1342:3: note: place parentheses around the assignment to silence this warning 1342 | RT_EXPORT_WALK(&c->out_req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1342:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1475:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1475 | RT_EXPORT_WALK(&c->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1475:3: note: place parentheses around the assignment to silence this warning 1475 | RT_EXPORT_WALK(&c->out_req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1475:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1507:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1507 | RT_EXPORT_WALK(&c->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1507:3: note: place parentheses around the assignment to silence this warning 1507 | RT_EXPORT_WALK(&c->out_req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1507:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1543:3: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1543 | else if ( | ^ nest/rt-table.c:1601:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1601 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1601:12: note: place parentheses around the assignment to silence this warning 1601 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:1601:12: note: use '==' to turn this assignment into an equality comparison 1601 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:1647:8: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1647 | else if (bmap_test(&c->export_rejected_map, old->id)) | ^ nest/rt-table.c:1676:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1676 | RT_EXPORT_WALK(&tab->best_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1676:3: note: place parentheses around the assignment to silence this warning 1676 | RT_EXPORT_WALK(&tab->best_req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1676:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1998:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1998 | NET_WALK_ROUTES(table, net, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1998:3: note: place parentheses around the assignment to silence this warning 1998 | NET_WALK_ROUTES(table, net, ep, e) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:1998:3: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:2004:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2004 | else | ^ nest/rt-table.c:2100:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2100 | for (; kk = atomic_load_explicit(k, memory_order_relaxed); k = &kk->next) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2100:14: note: place parentheses around the assignment to silence this warning 2100 | for (; kk = atomic_load_explicit(k, memory_order_relaxed); k = &kk->next) | ^ | ( ) nest/rt-table.c:2100:14: note: use '==' to turn this assignment into an equality comparison 2100 | for (; kk = atomic_load_explicit(k, memory_order_relaxed); k = &kk->next) | ^ | == nest/rt-table.c:2177:6: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2177 | kk = atomic_load_explicit(k, memory_order_relaxed); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2177:6: note: place parentheses around the assignment to silence this warning 2177 | kk = atomic_load_explicit(k, memory_order_relaxed); | ^ | ( ) nest/rt-table.c:2177:6: note: use '==' to turn this assignment into an equality comparison 2177 | kk = atomic_load_explicit(k, memory_order_relaxed); | ^ | == nest/rt-table.c:2231:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2231 | NET_WALK_ROUTES(table, net, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2231:5: note: place parentheses around the assignment to silence this warning 2231 | NET_WALK_ROUTES(table, net, ep, e) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:2231:5: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:2296:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2296 | else | ^ nest/rt-table.c:2843:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2843 | NET_WALK_ROUTES(tab, &routes[i], ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2843:7: note: place parentheses around the assignment to silence this warning 2843 | NET_WALK_ROUTES(tab, &routes[i], ep, e) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:2843:7: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:2940:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2940 | NET_READ_WALK_ROUTES(tp, &routes[i], ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2940:5: note: place parentheses around the assignment to silence this warning 2940 | NET_READ_WALK_ROUTES(tp, &routes[i], ep, e) | ^ | ( nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ nest/rt-table.c:2940:5: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:231:9: note: expanded from macro 'NET_READ_WALK_ROUTES' 231 | r = RTE_OBSOLETE_CHECK(tr, atomic_load_explicit(ptr, memory_order_acquire)); \ | ^ In file included from nest/rt-table.c:3115: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == nest/rt-table.c:3125:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3125 | RT_EXPORT_WALK(&ln->req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3125:3: note: place parentheses around the assignment to silence this warning 3125 | RT_EXPORT_WALK(&ln->req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3125:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3145:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3145 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3145:12: note: place parentheses around the assignment to silence this warning 3145 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:3145:12: note: use '==' to turn this assignment into an equality comparison 3145 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:3348:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3348 | RT_EXPORT_WALK(&d->req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3348:3: note: place parentheses around the assignment to silence this warning 3348 | RT_EXPORT_WALK(&d->req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3348:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3546:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3546 | RT_EXPORT_WALK(&t->best_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3546:3: note: place parentheses around the assignment to silence this warning 3546 | RT_EXPORT_WALK(&t->best_req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3546:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3633:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3633 | NET_WALK_ROUTES(tab, n, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3633:3: note: place parentheses around the assignment to silence this warning 3633 | NET_WALK_ROUTES(tab, n, ep, e) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:3633:3: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:3919:50: warning: passing 'char[8]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3919 | c->def_tables[NET_IP4] = cf_implicit_symbol(c, "master4", SYM_TABLE, table, NULL); | ^~~~~~~~~ ./conf/conf.h:308:48: note: expanded from macro 'cf_implicit_symbol' 308 | struct symbol *sym_ = cf_get_symbol(conf_, name_); \ | ^~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ nest/rt-table.c:3920:50: warning: passing 'char[8]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3920 | c->def_tables[NET_IP6] = cf_implicit_symbol(c, "master6", SYM_TABLE, table, NULL); | ^~~~~~~~~ ./conf/conf.h:308:48: note: expanded from macro 'cf_implicit_symbol' 308 | struct symbol *sym_ = cf_get_symbol(conf_, name_); \ | ^~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ nest/rt-table.c:4335:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 4335 | NET_WALK_ROUTES(tab, n, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:4335:3: note: place parentheses around the assignment to silence this warning 4335 | NET_WALK_ROUTES(tab, n, ep, e) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:4335:3: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:4347:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 4347 | NET_WALK_ROUTES(tab, n, ep, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:4347:3: note: place parentheses around the assignment to silence this warning 4347 | NET_WALK_ROUTES(tab, n, ep, e) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:4347:3: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:4629:51: warning: passing 'char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 4629 | struct symbol *saux = cf_get_symbol(new_config, auxname); | ^~~~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ nest/rt-table.c:4893:24: warning: passing 'char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 4893 | struct symbol *sym = cf_find_symbol(cf, name); | ^~~~~~~~~~~~~~~~~~~~~~~~ ./conf/conf.h:271:16: note: expanded from macro 'cf_find_symbol' 271 | )((where), (what)) | ^~~~~~ ./conf/conf.h:265:87: note: passing argument to parameter 'c' here 265 | static inline struct symbol *cf_find_symbol_cfg(const struct config *cfg, const byte *c) | ^ nest/rt-table.c:5085:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5085 | RT_EXPORT_WALK(&hc->req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5085:3: note: place parentheses around the assignment to silence this warning 5085 | RT_EXPORT_WALK(&hc->req, u) | ^ | ( ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:5085:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:276:10: note: expanded from macro 'RT_EXPORT_WALK' 276 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:5106:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5106 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5106:12: note: place parentheses around the assignment to silence this warning 5106 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:5106:12: note: use '==' to turn this assignment into an equality comparison 5106 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:5255:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5255 | NET_WALK_ROUTES(tab, n, ep, ee) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5255:7: note: place parentheses around the assignment to silence this warning 5255 | NET_WALK_ROUTES(tab, n, ep, ee) | ^ | ( nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:5255:7: note: use '==' to turn this assignment into an equality comparison nest/rt-table.c:239:9: note: expanded from macro 'NET_WALK_ROUTES' 239 | r = atomic_load_explicit(ptr, memory_order_acquire); \ | ^ nest/rt-table.c:5295:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 5295 | else | ^ nest/rt-table.c:5303:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 5303 | else | ^ nest/rt-table.c:5380:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5380 | WALK_LIST_DELSAFE(n, x, hc->hostentries) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ nest/rt-table.c:5380:3: note: place parentheses around the assignment to silence this warning 5380 | WALK_LIST_DELSAFE(n, x, hc->hostentries) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/rt-table.c:5380:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ nest/rt-table.c:5429:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 5429 | else | ^ 68 warnings generated. CC -o obj/proto/babel/babel.o -c proto/babel/babel.c In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:16: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:17: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:17: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:17: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:18: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:18: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:18: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:19: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/babel.c:44: In file included from proto/babel/babel.h:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/babel/babel.c:140:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 140 | WALK_LIST_DELSAFE(n, nx, e->sources) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/babel/babel.c:140:3: note: place parentheses around the assignment to silence this warning 140 | WALK_LIST_DELSAFE(n, nx, e->sources) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:140:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:247:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 247 | WALK_LIST_DELSAFE(r, rx, e->routes) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/babel/babel.c:247:5: note: place parentheses around the assignment to silence this warning 247 | WALK_LIST_DELSAFE(r, rx, e->routes) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:247:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:415:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 415 | WALK_LIST_DELSAFE(sr, srx, e->requests) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/babel/babel.c:415:3: note: place parentheses around the assignment to silence this warning 415 | WALK_LIST_DELSAFE(sr, srx, e->requests) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:415:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:537:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 537 | WALK_LIST_DELSAFE(nbr, nbx, ifa->neigh_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/babel/babel.c:537:5: note: place parentheses around the assignment to silence this warning 537 | WALK_LIST_DELSAFE(nbr, nbx, ifa->neigh_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:537:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/babel/babel.c:1010:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1010 | FIB_WALK(rtable, struct babel_entry, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/babel.c:1010:3: note: place parentheses around the assignment to silence this warning 1010 | FIB_WALK(rtable, struct babel_entry, e) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:1010:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2179:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2179 | FIB_WALK(&p->ip4_rtable, struct babel_entry, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/babel.c:2179:3: note: place parentheses around the assignment to silence this warning 2179 | FIB_WALK(&p->ip4_rtable, struct babel_entry, e) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2179:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2184:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2184 | FIB_WALK(&p->ip6_rtable, struct babel_entry, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/babel.c:2184:3: note: place parentheses around the assignment to silence this warning 2184 | FIB_WALK(&p->ip6_rtable, struct babel_entry, e) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2184:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2199:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2199 | buf += bsprintf(buf, " (%d/%d) [%lR]", | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/babel/babel.c:2209:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2209 | bsnprintf(buf, len, "%lR", rid); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ proto/babel/babel.c:2255:26: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2255 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/babel/babel.c:2255:31: warning: passing 'char[16]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2255 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~~~~~~~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/babel/babel.c:2292:26: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2292 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/babel/babel.c:2292:31: warning: passing 'char[16]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 2292 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~~~~~~~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/babel/babel.c:2316:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2316 | FIB_WALK(rtable, struct babel_entry, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/babel.c:2316:3: note: place parentheses around the assignment to silence this warning 2316 | FIB_WALK(rtable, struct babel_entry, e) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2316:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2331:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2331 | else if (r = e->selected) | ~~^~~~~~~~~~~~~ proto/babel/babel.c:2331:16: note: place parentheses around the assignment to silence this warning 2331 | else if (r = e->selected) | ^ | ( ) proto/babel/babel.c:2331:16: note: use '==' to turn this assignment into an equality comparison 2331 | else if (r = e->selected) | ^ | == proto/babel/babel.c:2366:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2366 | FIB_WALK(rtable, struct babel_entry, e) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/babel.c:2366:3: note: place parentheses around the assignment to silence this warning 2366 | FIB_WALK(rtable, struct babel_entry, e) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/babel/babel.c:2366:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ 29 warnings generated. CC -o obj/proto/babel/packets.o -c proto/babel/packets.c In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:16: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:17: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:17: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:17: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:18: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:18: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:18: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:19: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/babel/packets.c:13: In file included from proto/babel/babel.h:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/babel/packets.c:1929:29: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1929 | mac_init(&ctx, pass->alg, pass->password, pass->length); | ^~~~~~~~~~~~~~ ./lib/mac.h:116:61: note: passing argument to parameter 'key' here 116 | void mac_init(struct mac_context *ctx, uint id, const byte *key, uint keylen); | ^ 14 warnings generated. CC -o obj/proto/bfd/bfd.o -c proto/bfd/bfd.c In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:13: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:13: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:13: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:14: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:14: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:14: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:26: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:63: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/bfd.c:95: In file included from proto/bfd/bfd.h:111: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/bfd/bfd.c:571:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 571 | HASH_REMOVE(p->session_hash_id, HASH_ID, s); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bfd/bfd.c:571:3: note: place parentheses around the assignment to silence this warning ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bfd/bfd.c:571:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bfd/bfd.c:572:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 572 | HASH_REMOVE(p->session_hash_ip, HASH_IP, s); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bfd/bfd.c:572:3: note: place parentheses around the assignment to silence this warning ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bfd/bfd.c:572:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bfd/bfd.c:799:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 799 | req = bfd_pick_request(p); | ~~~~^~~~~~~~~~~~~~~~~~~~~ proto/bfd/bfd.c:799:11: note: place parentheses around the assignment to silence this warning 799 | req = bfd_pick_request(p); | ^ | ( ) proto/bfd/bfd.c:799:11: note: use '==' to turn this assignment into an equality comparison 799 | req = bfd_pick_request(p); | ^ | == proto/bfd/bfd.c:1249:18: warning: passing 'byte[32]' (aka 'unsigned char[32]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1249 | tm_format_time(tbuf, this_cli->tf ?: &gr->tf_proto, | ^~~~ ./lib/timer.h:139:27: note: passing argument to parameter 'x' here 139 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ proto/bfd/bfd.c:1267:80: warning: passing 'byte[16]' (aka 'unsigned char[16]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1267 | cli_msg(-1020, " %-21s %s", "Local diagnostic:", bfd_diag_name(sp.loc.diag, dbuf)); | ^~~~ ./nest/cli.h:89:44: note: expanded from macro 'cli_msg' 89 | #define cli_msg(x...) cli_printf(this_cli, x) | ^ proto/bfd/bfd.c:155:27: note: passing argument to parameter 'buf' here 155 | bfd_diag_name(u8 id, char buf[BFD_DIAG_BUFFER_SIZE]) | ^ proto/bfd/bfd.c:1268:81: warning: passing 'byte[16]' (aka 'unsigned char[16]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1268 | cli_msg(-1020, " %-21s %s", "Remote diagnostic:", bfd_diag_name(sp.rem.diag, dbuf)); | ^~~~ ./nest/cli.h:89:44: note: expanded from macro 'cli_msg' 89 | #define cli_msg(x...) cli_printf(this_cli, x) | ^ proto/bfd/bfd.c:155:27: note: passing argument to parameter 'buf' here 155 | bfd_diag_name(u8 id, char buf[BFD_DIAG_BUFFER_SIZE]) | ^ 28 warnings generated. CC -o obj/proto/bfd/packets.o -c proto/bfd/packets.c In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:13: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:13: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:13: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:14: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:14: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:14: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:15: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:26: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:63: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bfd/packets.c:7: In file included from proto/bfd/bfd.h:111: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/bfd/packets.c:172:13: warning: passing 'byte[0]' (aka 'unsigned char[0]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 172 | strncpy(auth->data, pass->password, hash_len); | ^~~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ proto/bfd/packets.c:265:13: warning: passing 'byte[0]' (aka 'unsigned char[0]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 265 | strncpy(auth->data, pass->password, hash_len); | ^~~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ 24 warnings generated. CC -o obj/proto/bgp/attrs.o -c proto/bgp/attrs.c In file included from proto/bgp/attrs.c:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:16: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:16: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:16: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:16: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/attrs.c:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bgp/attrs.c:27: In file included from proto/bgp/bgp.h:17: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/bgp/attrs.c:453:12: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 453 | bsprintf(buf, (a->u.data <= 2) ? bgp_origin_names[a->u.data] : "?"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:572:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 572 | bsprintf(buf, "%I", nh[0]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:574:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 574 | bsprintf(buf, "%I %I", nh[0], nh[1]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:658:12: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 658 | bsprintf(buf, "%I4 AS%u", get_ip4(data+4), get_u32(data+0)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:920:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 920 | bsprintf(buf, "?"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:922:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 922 | bsprintf(buf, "%lu", get_u64(b + 3)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:1009:9: warning: initializing 'char *' with an expression of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1009 | char *pos = buf; | ^ ~~~ proto/bgp/attrs.c:1050:15: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1050 | bsnprintf(buf, size, "(transitive)"); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ proto/bgp/attrs.c:1788:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1788 | HASH_REMOVE2(c->bucket_hash, RBH, c->pool, b); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bgp/attrs.c:1788:3: note: place parentheses around the assignment to silence this warning ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bgp/attrs.c:1788:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bgp/attrs.c:1936:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1936 | else | ^ proto/bgp/attrs.c:1960:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1960 | HASH_REMOVE2(c->prefix_hash, PXH, c->pool, px); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bgp/attrs.c:1960:3: note: place parentheses around the assignment to silence this warning ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bgp/attrs.c:1960:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ proto/bgp/attrs.c:2840:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2840 | s = atomic_load_explicit(ptr, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2840:9: note: place parentheses around the assignment to silence this warning 2840 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | ( ) proto/bgp/attrs.c:2840:9: note: use '==' to turn this assignment into an equality comparison 2840 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | == proto/bgp/attrs.c:2861:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2861 | s = atomic_load_explicit(ptr, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2861:9: note: place parentheses around the assignment to silence this warning 2861 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | ( ) proto/bgp/attrs.c:2861:9: note: use '==' to turn this assignment into an equality comparison 2861 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | == proto/bgp/attrs.c:2908:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2908 | RT_FEED_WALK(&c->stale_feed, f) TMP_SAVED | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2908:3: note: place parentheses around the assignment to silence this warning 2908 | RT_FEED_WALK(&c->stale_feed, f) TMP_SAVED | ^ | ( ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bgp/attrs.c:2908:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bgp/attrs.c:3007:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3007 | buf += bsprintf(buf, " (%d", rt_get_preference(e)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3012:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3012 | buf += bsprintf(buf, "-"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3015:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3015 | buf += bsprintf(buf, "s"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3020:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3020 | buf += bsprintf(buf, "/%lu", metric); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3022:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3022 | else if (metric = rt_get_igp_metric(e)) | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:3022:21: note: place parentheses around the assignment to silence this warning 3022 | else if (metric = rt_get_igp_metric(e)) | ^ | ( ) proto/bgp/attrs.c:3022:21: note: use '==' to turn this assignment into an equality comparison 3022 | else if (metric = rt_get_igp_metric(e)) | ^ | == proto/bgp/attrs.c:3025:18: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3025 | buf += bsprintf(buf, "/-"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3027:18: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3027 | buf += bsprintf(buf, "/?"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3029:18: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3029 | buf += bsprintf(buf, "/%d", metric); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3032:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3032 | buf += bsprintf(buf, ") ["); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3035:21: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3035 | buf += bsprintf(buf, "AS%u", origas); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3037:21: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3037 | buf += bsprintf(buf, "%c", "ie?"[o->u.data]); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3038:10: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3038 | strcpy(buf, "]"); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ 41 warnings generated. CC -o obj/proto/bgp/bgp.o -c proto/bgp/bgp.c In file included from proto/bgp/bgp.c:118: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:119: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:119: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:119: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:119: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:120: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:120: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:120: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:120: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/bgp.c:120: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bgp/bgp.c:123: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bgp/bgp.c:131: In file included from proto/bgp/bgp.h:17: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/bgp/bgp.c:540:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 540 | WALK_LIST_DELSAFE(key, key2, old_keys) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/bgp/bgp.c:540:5: note: place parentheses around the assignment to silence this warning 540 | WALK_LIST_DELSAFE(key, key2, old_keys) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/bgp/bgp.c:540:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/bgp/bgp.c:800:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 800 | WALK_LIST_DELSAFE(bs, nxt, bgp_sockets) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/bgp/bgp.c:800:3: note: place parentheses around the assignment to silence this warning 800 | WALK_LIST_DELSAFE(bs, nxt, bgp_sockets) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/bgp/bgp.c:800:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/bgp/bgp.c:2847:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2847 | if (tab = rt_get_default_table(cf->c.global, type)) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/bgp.c:2847:11: note: place parentheses around the assignment to silence this warning 2847 | if (tab = rt_get_default_table(cf->c.global, type)) | ^ | ( ) proto/bgp/bgp.c:2847:11: note: use '==' to turn this assignment into an equality comparison 2847 | if (tab = rt_get_default_table(cf->c.global, type)) | ^ | == proto/bgp/bgp.c:3026:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 3026 | else | ^ proto/bgp/bgp.c:3033:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 3033 | else | ^ proto/bgp/bgp.c:3164:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3164 | WALK_LIST_DELSAFE(C, C2, p->p.channels) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/bgp/bgp.c:3164:3: note: place parentheses around the assignment to silence this warning 3164 | WALK_LIST_DELSAFE(C, C2, p->p.channels) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/bgp/bgp.c:3164:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/bgp/bgp.c:3393:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3393 | bsprintf(buf, "%s%s", err1, err2); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/bgp.c:3395:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3395 | bsprintf(buf, "%-14s%s%s", bgp_state_dsc(p), err1, err2); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/bgp.c:3416:12: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3416 | strcpy(b.end - 32, " ... "); | ^~~~~~~~~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ proto/bgp/bgp.c:3418:17: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3418 | cli_msg(code, b.start); | ^~~~~~~ ./nest/cli.h:89:44: note: expanded from macro 'cli_msg' 89 | #define cli_msg(x...) cli_printf(this_cli, x) | ^ ./nest/cli.h:81:63: note: passing argument to parameter 'fmt' here 81 | static inline void cli_printf(cli *cli, int code, const char *fmt, ...) | ^ 28 warnings generated. CC -o obj/proto/bgp/packets.o -c proto/bgp/packets.c In file included from proto/bgp/packets.c:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:16: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:16: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:16: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:16: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bgp/packets.c:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bgp/packets.c:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/bgp/packets.c:28: In file included from proto/bgp/bgp.h:17: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/bgp/packets.c:838:10: warning: returning 'char *' from a function with result type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 838 | return buf; | ^~~ proto/bgp/packets.c:1294:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1294 | if (nhloc = bgp_use_gateway(s)) | ~~~~~~^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:1294:15: note: place parentheses around the assignment to silence this warning 1294 | if (nhloc = bgp_use_gateway(s)) | ^ | ( ) proto/bgp/packets.c:1294:15: note: use '==' to turn this assignment into an equality comparison 1294 | if (nhloc = bgp_use_gateway(s)) | ^ | == proto/bgp/packets.c:3332:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[23]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3332 | { 1, 0, "Invalid message header" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3333:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[28]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3333 | { 1, 1, "Connection not synchronized" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3334:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3334 | { 1, 2, "Bad message length" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3335:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[17]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3335 | { 1, 3, "Bad message type" }, | ^~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3336:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[21]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3336 | { 2, 0, "Invalid OPEN message" }, | ^~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3337:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[27]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3337 | { 2, 1, "Unsupported version number" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3338:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[12]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3338 | { 2, 2, "Bad peer AS" }, | ^~~~~~~~~~~~~ proto/bgp/packets.c:3339:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3339 | { 2, 3, "Bad BGP identifier" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3340:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[31]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3340 | { 2, 4, "Unsupported optional parameter" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3341:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[23]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3341 | { 2, 5, "Authentication failure" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3342:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[23]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3342 | { 2, 6, "Unacceptable hold time" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3343:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[28]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3343 | { 2, 7, "Required capability missing" }, /* [RFC5492] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3344:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[22]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3344 | { 2, 8, "No supported AFI/SAFI" }, /* This error msg is nonstandard */ | ^~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3345:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[14]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3345 | { 2,11, "Role mismatch" }, /* From Open Policy, RFC 9234 */ | ^~~~~~~~~~~~~~~ proto/bgp/packets.c:3346:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[23]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3346 | { 3, 0, "Invalid UPDATE message" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3347:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[25]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3347 | { 3, 1, "Malformed attribute list" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3348:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[34]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3348 | { 3, 2, "Unrecognized well-known attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3349:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[28]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3349 | { 3, 3, "Missing mandatory attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3350:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[24]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3350 | { 3, 4, "Invalid attribute flags" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3351:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[25]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3351 | { 3, 5, "Invalid attribute length" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3352:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[25]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3352 | { 3, 6, "Invalid ORIGIN attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3353:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[16]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3353 | { 3, 7, "AS routing loop" }, /* Deprecated */ | ^~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3354:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[27]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3354 | { 3, 8, "Invalid NEXT_HOP attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3355:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[25]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3355 | { 3, 9, "Optional attribute error" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3356:12: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[22]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3356 | { 3, 10, "Invalid network field" }, | ^~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3357:12: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[18]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3357 | { 3, 11, "Malformed AS_PATH" }, | ^~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3358:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3358 | { 4, 0, "Hold timer expired" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3359:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[27]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3359 | { 5, 0, "Finite state machine error" }, /* Subcodes are according to [RFC6608] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3360:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[37]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3360 | { 5, 1, "Unexpected message in OpenSent state" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3361:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[40]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3361 | { 5, 2, "Unexpected message in OpenConfirm state" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3362:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[40]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3362 | { 5, 3, "Unexpected message in Established state" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3363:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[6]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3363 | { 6, 0, "Cease" }, /* Subcodes are according to [RFC4486] */ | ^~~~~~~ proto/bgp/packets.c:3364:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[35]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3364 | { 6, 1, "Maximum number of prefixes reached" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3365:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[24]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3365 | { 6, 2, "Administrative shutdown" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3366:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3366 | { 6, 3, "Peer de-configured" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3367:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[21]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3367 | { 6, 4, "Administrative reset" }, | ^~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3368:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[20]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3368 | { 6, 5, "Connection rejected" }, | ^~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3369:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[27]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3369 | { 6, 6, "Other configuration change" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3370:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[32]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3370 | { 6, 7, "Connection collision resolution" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3371:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[17]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3371 | { 6, 8, "Out of Resources" }, | ^~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3372:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[30]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3372 | { 7, 0, "Invalid ROUTE-REFRESH message" }, /* [RFC7313] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3373:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[37]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3373 | { 7, 1, "Invalid ROUTE-REFRESH message length" }, /* [RFC7313] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3374:11: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[24]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3374 | { 8, 0, "Send hold timer expired" }, /* [RFC9687] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3393:14: warning: returning 'byte *' (aka 'unsigned char *') from a function with result type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3393 | return bgp_msg_table[i].msg; | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3420:28: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3420 | proto_set_message(&p->p, msg, msg_len); | ^~~ ./nest/protocol.h:248:47: note: passing argument to parameter 'msg' here 248 | void proto_set_message(struct proto *p, char *msg, int len); | ^ proto/bgp/packets.c:3421:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3421 | *bp += bsprintf(*bp, ": \"%s\"", p->p.message); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/packets.c:3444:18: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3444 | t += bsprintf(t, ": %u", (len == 2) ? get_u16(data) : get_u32(data)); | ^ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/packets.c:3450:18: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3450 | t += bsprintf(t, " (%s)", bgp_format_role_name(get_u8(data))); | ^ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/packets.c:3464:16: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3464 | t += bsprintf(t, "%02x", data[i]); | ^ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/packets.c:3469:15: warning: initializing 'const byte *' (aka 'const unsigned char *') with an expression of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 3469 | const byte *dsc = bgp_error_dsc(code, subcode); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70 warnings generated. CC -o obj/proto/mrt/mrt.o -c proto/mrt/mrt.c In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/mrt/mrt.c:47: In file included from proto/mrt/mrt.h:14: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/mrt/mrt.c:50: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/mrt/mrt.c:52: In file included from ./proto/bgp/bgp.h:17: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/mrt/mrt.c:54: In file included from ./sysdep/unix/io-loop.h:81: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/mrt/mrt.c:54: ./sysdep/unix/io-loop.h:84:35: warning: redefinition of typedef 'thread_group' is a C11 feature [-Wtypedef-redefinition] 84 | typedef union thread_group_public thread_group; | ^ ./lib/io-loop.h:37:35: note: previous definition is here 37 | typedef union thread_group_public thread_group; | ^ In file included from proto/mrt/mrt.c:54: In file included from ./sysdep/unix/io-loop.h:119: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/mrt/mrt.c:207:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 207 | for (last = src; next = strstr(last, key); last = next + klen) | ~~~~~^~~~~~~~~~~~~~~~~~~ proto/mrt/mrt.c:207:25: note: place parentheses around the assignment to silence this warning 207 | for (last = src; next = strstr(last, key); last = next + klen) | ^ | ( ) proto/mrt/mrt.c:207:25: note: use '==' to turn this assignment into an equality comparison 207 | for (last = src; next = strstr(last, key); last = next + klen) | ^ | == proto/mrt/mrt.c:557:11: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 557 | patmatch(pattern, tab->name) && | ^~~~~~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/mrt/mrt.c:557:20: warning: passing 'char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 557 | patmatch(pattern, tab->name) && | ^~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/mrt/mrt.c:566:11: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 566 | patmatch(pattern, tab->name) && | ^~~~~~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/mrt/mrt.c:566:20: warning: passing 'char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 566 | patmatch(pattern, tab->name) && | ^~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/mrt/mrt.c:655:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 655 | RT_FEED_WALK(&s->feeder, route_feed) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/mrt/mrt.c:655:5: note: place parentheses around the assignment to silence this warning 655 | RT_FEED_WALK(&s->feeder, route_feed) | ^ | ( ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/mrt/mrt.c:655:5: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ 31 warnings generated. CC -o obj/proto/ospf/dbdes.o -c proto/ospf/dbdes.c In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/dbdes.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 18 warnings generated. CC -o obj/proto/ospf/hello.o -c proto/ospf/hello.c In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/hello.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 18 warnings generated. CC -o obj/proto/ospf/iface.o -c proto/ospf/iface.c In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/iface.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/iface.c:267:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 267 | WALK_LIST_DELSAFE(n, nx, ifa->neigh_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/iface.c:267:3: note: place parentheses around the assignment to silence this warning 267 | WALK_LIST_DELSAFE(n, nx, ifa->neigh_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:267:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:794:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 794 | WALK_LIST_DELSAFE(n, nx, ifa->neigh_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/iface.c:794:5: note: place parentheses around the assignment to silence this warning 794 | WALK_LIST_DELSAFE(n, nx, ifa->neigh_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:794:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:913:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 913 | WALK_LIST_DELSAFE(nb, nbx, ifa->nbma_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/iface.c:913:3: note: place parentheses around the assignment to silence this warning 913 | WALK_LIST_DELSAFE(nb, nbx, ifa->nbma_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:913:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:1168:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1168 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/iface.c:1168:5: note: place parentheses around the assignment to silence this warning 1168 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:1168:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:1203:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1203 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/iface.c:1203:7: note: place parentheses around the assignment to silence this warning 1203 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:1203:7: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:1388:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1388 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/iface.c:1388:3: note: place parentheses around the assignment to silence this warning 1388 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/iface.c:1388:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ 24 warnings generated. CC -o obj/proto/ospf/lsack.o -c proto/ospf/lsack.c In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsack.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 18 warnings generated. CC -o obj/proto/ospf/lsalib.o -c proto/ospf/lsalib.c In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsalib.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/lsalib.c:173:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 173 | if (code = LOOKUP(opaque_lsa_types, id >> 24)) | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/lsalib.c:173:16: note: place parentheses around the assignment to silence this warning 173 | if (code = LOOKUP(opaque_lsa_types, id >> 24)) | ^ | ( ) proto/ospf/lsalib.c:173:16: note: use '==' to turn this assignment into an equality comparison 173 | if (code = LOOKUP(opaque_lsa_types, id >> 24)) | ^ | == 19 warnings generated. CC -o obj/proto/ospf/lsreq.o -c proto/ospf/lsreq.c In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsreq.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 18 warnings generated. CC -o obj/proto/ospf/lsupd.o -c proto/ospf/lsupd.c In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/lsupd.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/lsupd.c:439:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 439 | WALK_SLIST_DELSAFE(ret, nxt, n->lsrtl) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~~ proto/ospf/lsupd.c:439:3: note: place parentheses around the assignment to silence this warning 439 | WALK_SLIST_DELSAFE(ret, nxt, n->lsrtl) | ^ | ( ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/lsupd.c:439:3: note: use '==' to turn this assignment into an equality comparison ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ^ 19 warnings generated. CC -o obj/proto/ospf/neighbor.o -c proto/ospf/neighbor.c In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/neighbor.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/neighbor.c:544:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 544 | WALK_LIST_DELSAFE(n, nx, ifa->neigh_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/neighbor.c:544:7: note: place parentheses around the assignment to silence this warning 544 | WALK_LIST_DELSAFE(n, nx, ifa->neigh_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/neighbor.c:544:7: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ 19 warnings generated. CC -o obj/proto/ospf/ospf.o -c proto/ospf/ospf.c In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/ospf.c:108: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/ospf.c:541:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 541 | FIB_WALK(&p->rtf, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/ospf.c:541:3: note: place parentheses around the assignment to silence this warning 541 | FIB_WALK(&p->rtf, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/ospf.c:541:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/ospf.c:568:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 568 | strcpy(buf, "Alone"); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ proto/ospf/ospf.c:570:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 570 | strcpy(buf, "Running"); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ proto/ospf/ospf.c:596:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 596 | buf += bsprintf(buf, " %s", type); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/ospf/ospf.c:597:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 597 | buf += bsprintf(buf, " (%d/%d", rt_get_preference(rte), ea_get_int(rte->attrs, &ea_ospf_metric1, LSINFINITY)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/ospf/ospf.c:599:21: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 599 | buf += bsprintf(buf, "/%d", ea_get_int(rte->attrs, &ea_ospf_metric2, LSINFINITY)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/ospf/ospf.c:600:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 600 | buf += bsprintf(buf, ")"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/ospf/ospf.c:605:23: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 605 | buf += bsprintf(buf, " [%x]", ea->u.data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/ospf/ospf.c:610:21: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 610 | buf += bsprintf(buf, " [%R]", ea->u.data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/ospf/ospf.c:616:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 616 | bsnprintf(buf, buflen, "0x%08x", a->u.data); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ proto/ospf/ospf.c:634:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 634 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/ospf.c:634:5: note: place parentheses around the assignment to silence this warning 634 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/ospf.c:634:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/ospf.c:751:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 751 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/ospf.c:751:3: note: place parentheses around the assignment to silence this warning 751 | WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/ospf.c:751:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/ospf.c:758:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 758 | WALK_LIST_DELSAFE(oa, oax, p->area_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/ospf/ospf.c:758:3: note: place parentheses around the assignment to silence this warning 758 | WALK_LIST_DELSAFE(oa, oax, p->area_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/ospf.c:758:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/ospf.c:785:35: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 785 | if ((iff == NULL) || patmatch(iff, ifa->ifname)) | ^~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/ospf/ospf.c:785:40: warning: passing 'char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 785 | if ((iff == NULL) || patmatch(iff, ifa->ifname)) | ^~~~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/ospf/ospf.c:845:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 845 | FIB_WALK(&oa->net_fib, struct area_net, anet) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/ospf.c:845:5: note: place parentheses around the assignment to silence this warning 845 | FIB_WALK(&oa->net_fib, struct area_net, anet) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/ospf.c:845:5: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/ospf.c:858:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 858 | FIB_WALK(&oa->enet_fib, struct area_net, anet) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/ospf.c:858:5: note: place parentheses around the assignment to silence this warning 858 | FIB_WALK(&oa->enet_fib, struct area_net, anet) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/ospf.c:858:5: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/ospf.c:887:35: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 887 | if ((iff == NULL) || patmatch(iff, ifa->ifname)) | ^~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/ospf/ospf.c:887:40: warning: passing 'char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 887 | if ((iff == NULL) || patmatch(iff, ifa->ifname)) | ^~~~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ 37 warnings generated. CC -o obj/proto/ospf/packet.o -c proto/ospf/packet.c In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/packet.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/packet.c:67:13: warning: passing 'u8[8]' (aka 'unsigned char[8]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 67 | strncpy(auth->password, pass->password, sizeof(auth->password)); | ^~~~~~~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ proto/ospf/packet.c:114:15: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 114 | strncpy(auth_tail, pass->password, auth_len); | ^~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ proto/ospf/packet.c:118:25: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 118 | mac_fill(pass->alg, pass->password, pass->length, (byte *) pkt, *plen, auth_tail); | ^~~~~~~~~~~~~~ ./lib/mac.h:127:36: note: passing argument to parameter 'key' here 127 | void mac_fill(uint id, const byte *key, uint keylen, const byte *data, uint datalen, byte *mac); | ^ proto/ospf/packet.c:203:32: warning: passing 'u8[8]' (aka 'unsigned char[8]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 203 | if (!password_verify(pass, auth->password, sizeof(auth->password))) | ^~~~~~~~~~~~~~ ./nest/password.h:31:67: note: passing argument to parameter 'p2' here 31 | static inline int password_verify(struct password_item *p1, char *p2, uint size) | ^ proto/ospf/packet.c:238:15: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 238 | strncpy(auth_tail, pass->password, auth_len); | ^~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ proto/ospf/packet.c:242:32: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 242 | if (!mac_verify(pass->alg, pass->password, pass->length, | ^~~~~~~~~~~~~~ ./lib/mac.h:128:37: note: passing argument to parameter 'key' here 128 | int mac_verify(uint id, const byte *key, uint keylen, const byte *data, uint datalen, const byte *mac); | ^ proto/ospf/packet.c:439:55: warning: passing 'uint *' (aka 'unsigned int *') to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign] 439 | struct ospf_packet *pkt = (void *) sk_rx_buffer(sk, &len); | ^~~~ ./lib/socket.h:163:35: note: passing argument to parameter 'len' here 163 | byte * sk_rx_buffer(sock *s, int *len); /* Temporary */ | ^ 25 warnings generated. CC -o obj/proto/ospf/rt.o -c proto/ospf/rt.c In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:14: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/rt.c:11: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/rt.c:986:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality] 986 | if ((nf->n.oa->areaid == oa->areaid)) | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ proto/ospf/rt.c:986:25: note: remove extraneous parentheses around the comparison to silence this warning 986 | if ((nf->n.oa->areaid == oa->areaid)) | ~ ^ ~ proto/ospf/rt.c:986:25: note: use '=' to turn this equality comparison into an assignment 986 | if ((nf->n.oa->areaid == oa->areaid)) | ^~ | = proto/ospf/rt.c:1190:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1190 | FIB_WALK(&p->backbone->rtr, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1190:3: note: place parentheses around the assignment to silence this warning 1190 | FIB_WALK(&p->backbone->rtr, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1190:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1198:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1198 | FIB_WALK(&p->rtf, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1198:3: note: place parentheses around the assignment to silence this warning 1198 | FIB_WALK(&p->rtf, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1198:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1264:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1264 | FIB_WALK(&oa->rtr, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1264:7: note: place parentheses around the assignment to silence this warning 1264 | FIB_WALK(&oa->rtr, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1264:7: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1275:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1275 | FIB_WALK(&p->backbone->rtr, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1275:3: note: place parentheses around the assignment to silence this warning 1275 | FIB_WALK(&p->backbone->rtr, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1275:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1315:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1315 | FIB_WALK(&oa->rtr, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1315:7: note: place parentheses around the assignment to silence this warning 1315 | FIB_WALK(&oa->rtr, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1315:7: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1360:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1360 | FIB_WALK(&p->rtf, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1360:3: note: place parentheses around the assignment to silence this warning 1360 | FIB_WALK(&p->rtf, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1360:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1388:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1388 | FIB_WALK(&p->rtf, ort, nf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1388:3: note: place parentheses around the assignment to silence this warning 1388 | FIB_WALK(&p->rtf, ort, nf) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1388:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1605:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1605 | FIB_WALK(&p->rtf, ort, ri) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1605:3: note: place parentheses around the assignment to silence this warning 1605 | FIB_WALK(&p->rtf, ort, ri) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1605:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1628:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1628 | FIB_WALK(&oa->rtr, ort, ri) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1628:5: note: place parentheses around the assignment to silence this warning 1628 | FIB_WALK(&oa->rtr, ort, ri) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1628:5: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1637:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1637 | FIB_WALK(&oa->net_fib, struct area_net, anet) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1637:7: note: place parentheses around the assignment to silence this warning 1637 | FIB_WALK(&oa->net_fib, struct area_net, anet) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1637:7: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1644:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1644 | FIB_WALK(&oa->enet_fib, struct area_net, anet) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/rt.c:1644:7: note: place parentheses around the assignment to silence this warning 1644 | FIB_WALK(&oa->enet_fib, struct area_net, anet) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/ospf/rt.c:1644:7: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ 30 warnings generated. CC -o obj/proto/ospf/topology.o -c proto/ospf/topology.c In file included from proto/ospf/topology.c:12: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:21: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:23: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:26: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/ospf/topology.c:15: In file included from proto/ospf/ospf.h:28: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/ospf/topology.c:518:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 518 | WALK_SLIST_DELSAFE(en, nxt, p->lsal) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~~ proto/ospf/topology.c:518:3: note: place parentheses around the assignment to silence this warning 518 | WALK_SLIST_DELSAFE(en, nxt, p->lsal) | ^ | ( ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/topology.c:518:3: note: use '==' to turn this assignment into an equality comparison ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ^ proto/ospf/topology.c:1724:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1724 | if (en = ifa->link_lsa) | ~~~^~~~~~~~~~~~~~~ proto/ospf/topology.c:1724:10: note: place parentheses around the assignment to silence this warning 1724 | if (en = ifa->link_lsa) | ^ | ( ) proto/ospf/topology.c:1724:10: note: use '==' to turn this assignment into an equality comparison 1724 | if (en = ifa->link_lsa) | ^ | == 20 warnings generated. CC -o obj/proto/pipe/pipe.o -c proto/pipe/pipe.c In file included from proto/pipe/pipe.c:35: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:36: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:36: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:36: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:36: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:37: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:37: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:37: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:37: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/pipe/pipe.c:37: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/pipe/pipe.c:39: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/pipe/pipe.c:212:12: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 212 | bsprintf(buf, "%s <=> %s", p->pri->table->name, p->sec->table->name); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 16 warnings generated. CC -o obj/proto/radv/packets.o -c proto/radv/packets.c In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:18: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/radv/packets.c:12: In file included from proto/radv/radv.h:23: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/radv/packets.c:334:9: warning: initializing 'char *' with an expression of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 334 | char *buf = ifa->sk->tbuf; | ^ ~~~~~~~~~~~~~ proto/radv/packets.c:400:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 400 | FIB_WALK(&p->routes, struct radv_route, rt) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/radv/packets.c:400:5: note: place parentheses around the assignment to silence this warning 400 | FIB_WALK(&p->routes, struct radv_route, rt) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/radv/packets.c:400:5: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ 17 warnings generated. CC -o obj/proto/radv/radv.o -c proto/radv/radv.c In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:18: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/radv/radv.c:12: In file included from proto/radv/radv.h:23: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/radv/radv.c:174:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 174 | WALK_LIST_DELSAFE(pfx, next, ifa->prefixes) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/radv/radv.c:174:3: note: place parentheses around the assignment to silence this warning 174 | WALK_LIST_DELSAFE(pfx, next, ifa->prefixes) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/radv/radv.c:174:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/radv/radv.c:197:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 197 | WALK_LIST_DELSAFE(px, pxn, ifa->prefixes) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/radv/radv.c:197:3: note: place parentheses around the assignment to silence this warning 197 | WALK_LIST_DELSAFE(px, pxn, ifa->prefixes) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/radv/radv.c:197:3: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/radv/radv.c:734:12: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 734 | strcpy(buf, "Suppressed"); | ^~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ proto/radv/radv.c:756:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 756 | bsnprintf(buf, buflen, "%s", radv_pref_str(a->u.data)); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ 19 warnings generated. CC -o obj/proto/rip/packets.o -c proto/rip/packets.c In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:16: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:16: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:16: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:17: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:17: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:17: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/rip/packets.c:14: In file included from proto/rip/rip.h:22: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/rip/packets.c:316:15: warning: passing 'byte[0]' (aka 'unsigned char[0]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 316 | strncpy(tail->auth_data, pass->password, auth_len); | ^~~~~~~~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ proto/rip/packets.c:320:25: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 320 | mac_fill(pass->alg, pass->password, pass->length, | ^~~~~~~~~~~~~~ ./lib/mac.h:127:36: note: passing argument to parameter 'key' here 127 | void mac_fill(uint id, const byte *key, uint keylen, const byte *data, uint datalen, byte *mac); | ^ proto/rip/packets.c:405:15: warning: passing 'byte[0]' (aka 'unsigned char[0]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 405 | strncpy(tail->auth_data, pass->password, auth_len); | ^~~~~~~~~~~~~~~ /usr/include/string.h:112:32: note: passing argument to parameter here 112 | char *strncpy(char * __restrict, const char * __restrict, size_t); | ^ proto/rip/packets.c:409:32: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 409 | if (!mac_verify(pass->alg, pass->password, pass->length, | ^~~~~~~~~~~~~~ ./lib/mac.h:128:37: note: passing argument to parameter 'key' here 128 | int mac_verify(uint id, const byte *key, uint keylen, const byte *data, uint datalen, const byte *mac); | ^ 20 warnings generated. CC -o obj/proto/rip/rip.o -c proto/rip/rip.c In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:16: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:16: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:16: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:17: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:17: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:17: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:18: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/rip/rip.c:81: In file included from proto/rip/rip.h:22: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/rip/rip.c:271:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 271 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ~~~^~~~~ proto/rip/rip.c:271:29: note: place parentheses around the assignment to silence this warning 271 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | ( ) proto/rip/rip.c:271:29: note: use '==' to turn this assignment into an equality comparison 271 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | == proto/rip/rip.c:318:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 318 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ~~~^~~~~ proto/rip/rip.c:318:29: note: place parentheses around the assignment to silence this warning 318 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | ( ) proto/rip/rip.c:318:29: note: use '==' to turn this assignment into an equality comparison 318 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | == proto/rip/rip.c:431:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 431 | FIB_WALK(&p->rtable, struct rip_entry, en) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/rip/rip.c:431:3: note: place parentheses around the assignment to silence this warning 431 | FIB_WALK(&p->rtable, struct rip_entry, en) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/rip/rip.c:431:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/rip/rip.c:950:31: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 950 | for (rp = &en->routes; rt = *rp; /* rp = &rt->next */) | ~~~^~~~~ proto/rip/rip.c:950:31: note: place parentheses around the assignment to silence this warning 950 | for (rp = &en->routes; rt = *rp; /* rp = &rt->next */) | ^ | ( ) proto/rip/rip.c:950:31: note: use '==' to turn this assignment into an equality comparison 950 | for (rp = &en->routes; rt = *rp; /* rp = &rt->next */) | ^ | == proto/rip/rip.c:1009:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1009 | WALK_LIST_DELSAFE(n, nn, ifa->neigh_list) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~ proto/rip/rip.c:1009:5: note: place parentheses around the assignment to silence this warning 1009 | WALK_LIST_DELSAFE(n, nn, ifa->neigh_list) | ^ | ( ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/rip/rip.c:1009:5: note: use '==' to turn this assignment into an equality comparison ./lib/lists.h:57:24: note: expanded from macro 'WALK_LIST_DELSAFE' 57 | for(n=HEAD(list); nxt=NODE_NEXT(n); n=(void *) nxt) | ^ proto/rip/rip.c:1261:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1261 | buf += bsprintf(buf, " (%d/%d)", rt_get_preference(rte), rt_metric); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/rip/rip.c:1264:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1264 | bsprintf(buf, " [%04x]", rt_tag); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/rip/rip.c:1270:13: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1270 | bsnprintf(buf, buflen, "%04x", a->u.data); | ^~~ ./lib/string.h:20:21: note: passing argument to parameter 'str' here 20 | int bsnprintf(char *str, int size, const char *fmt, ...) ACCESS_WRITE(1, 2); | ^ proto/rip/rip.c:1312:26: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1312 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/rip/rip.c:1312:31: warning: passing 'char[16]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1312 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~~~~~~~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/rip/rip.c:1347:26: warning: passing 'const char *' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1347 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~ ./lib/string.h:46:26: note: passing argument to parameter 'pat' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/rip/rip.c:1347:31: warning: passing 'char[16]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1347 | if (iff && !patmatch(iff, ifa->iface->name)) | ^~~~~~~~~~~~~~~~ ./lib/string.h:46:43: note: passing argument to parameter 'str' here 46 | int patmatch(const byte *pat, const byte *str); | ^ proto/rip/rip.c:1370:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1370 | FIB_WALK(&p->rtable, struct rip_entry, en) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/rip/rip.c:1370:3: note: place parentheses around the assignment to silence this warning 1370 | FIB_WALK(&p->rtable, struct rip_entry, en) | ^ | ( ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ proto/rip/rip.c:1370:3: note: use '==' to turn this assignment into an equality comparison ./lib/fib.h:86:25: note: expanded from macro 'FIB_WALK' 86 | for (fn_ = *ff_++; z = fib_node_to_user(fib, fn_); fn_=fn_->next) | ^ 29 warnings generated. CC -o obj/proto/rpki/rpki.o -c proto/rpki/rpki.c In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/rpki.c:96: In file included from proto/rpki/rpki.h:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/rpki/rpki.c:98: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/rpki/rpki.c:918:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 918 | bsprintf(buf, "%s", rpki_cache_state_to_str(p->cache->state)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/rpki/rpki.c:920:14: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 920 | bsprintf(buf, "No cache server configured"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 17 warnings generated. CC -o obj/proto/rpki/packets.o -c proto/rpki/packets.c In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/packets.c:18: In file included from proto/rpki/rpki.h:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/proto/rpki/tcp_transport.o -c proto/rpki/tcp_transport.c In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/tcp_transport.c:21: In file included from proto/rpki/rpki.h:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/proto/rpki/ssh_transport.o -c proto/rpki/ssh_transport.c In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/ssh_transport.c:18: In file included from proto/rpki/rpki.h:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/proto/rpki/transport.o -c proto/rpki/transport.c In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:15: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:16: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/rpki/transport.c:15: In file included from proto/rpki/rpki.h:17: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 12 warnings generated. CC -o obj/proto/static/static.o -c proto/static/static.c In file included from proto/static/static.c:38: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:39: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:39: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:39: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:39: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:40: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:40: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:40: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:40: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/static/static.c:40: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/static/static.c:43: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from proto/static/static.c:49: In file included from proto/static/static.h:13: In file included from ./nest/bfd.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == proto/static/static.c:807:21: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 807 | buf += bsprintf(buf, " (%d/%u)", pref, a->u.data); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/static/static.c:809:21: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 809 | buf += bsprintf(buf, " (%d)", pref); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 20 warnings generated. CC -o obj/sysdep/unix/alloc.o -c sysdep/unix/alloc.c In file included from sysdep/unix/alloc.c:9: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/alloc.c:13: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/alloc.c:15: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == sysdep/unix/alloc.c:188:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 188 | if (fp = PAGE_STACK_GET) | ~~~^~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:188:10: note: place parentheses around the assignment to silence this warning 188 | if (fp = PAGE_STACK_GET) | ^ | ( ) sysdep/unix/alloc.c:188:10: note: use '==' to turn this assignment into an equality comparison 188 | if (fp = PAGE_STACK_GET) | ^ | == sysdep/unix/alloc.c:238:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 238 | if (fp = alloc_hot_page(fp)) | ~~~^~~~~~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:238:10: note: place parentheses around the assignment to silence this warning 238 | if (fp = alloc_hot_page(fp)) | ^ | ( ) sysdep/unix/alloc.c:238:10: note: use '==' to turn this assignment into an equality comparison 238 | if (fp = alloc_hot_page(fp)) | ^ | == sysdep/unix/alloc.c:252:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 252 | if (fp = alloc_hot_page(fp)) | ~~~^~~~~~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:252:10: note: place parentheses around the assignment to silence this warning 252 | if (fp = alloc_hot_page(fp)) | ^ | ( ) sysdep/unix/alloc.c:252:10: note: use '==' to turn this assignment into an equality comparison 252 | if (fp = alloc_hot_page(fp)) | ^ | == sysdep/unix/alloc.c:372:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 372 | while (next = atomic_load_explicit(&last->next, memory_order_relaxed)) | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:372:15: note: place parentheses around the assignment to silence this warning 372 | while (next = atomic_load_explicit(&last->next, memory_order_relaxed)) | ^ | ( ) sysdep/unix/alloc.c:372:15: note: use '==' to turn this assignment into an equality comparison 372 | while (next = atomic_load_explicit(&last->next, memory_order_relaxed)) | ^ | == 7 warnings generated. CC -o obj/sysdep/unix/io.o -c sysdep/unix/io.c In file included from sysdep/unix/io.c:38: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:44: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:47: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:47: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:47: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:48: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:48: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:52: In file included from ./sysdep/unix/io-loop.h:81: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io.c:52: ./sysdep/unix/io-loop.h:84:35: warning: redefinition of typedef 'thread_group' is a C11 feature [-Wtypedef-redefinition] 84 | typedef union thread_group_public thread_group; | ^ ./lib/io-loop.h:37:35: note: previous definition is here 37 | typedef union thread_group_public thread_group; | ^ In file included from sysdep/unix/io.c:52: In file included from ./sysdep/unix/io-loop.h:119: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == sysdep/unix/io.c:259:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 259 | else | ^ sysdep/unix/io.c:820:58: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 820 | if (getsockopt(s->fd, SOL_SOCKET, SO_RCVBUF, &oldsize, &oldsize_s) < 0) | ^~~~~~~~~~ /usr/include/sys/socket.h:706:72: note: passing argument to parameter here 706 | int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict); | ^ sysdep/unix/io.c:1399:35: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 1399 | if ((getsockname(s->fd, &sa.sa, &sa_len) < 0) || | ^~~~~~~ /usr/include/sys/socket.h:705:74: note: passing argument to parameter here 705 | int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict); | ^ sysdep/unix/io.c:1425:66: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 1425 | int fd = accept(s->fd, ((type == SK_TCP) ? &rem_sa.sa : NULL), &rem_sa_len); | ^~~~~~~~~~~ /usr/include/sys/socket.h:696:69: note: passing argument to parameter here 696 | int accept(int, struct sockaddr * __restrict, socklen_t * __restrict); | ^ sysdep/unix/io.c:1450:38: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 1450 | if ((getsockname(fd, &loc_sa.sa, &loc_sa_len) < 0) || | ^~~~~~~~~~~ /usr/include/sys/socket.h:705:74: note: passing argument to parameter here 705 | int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict); | ^ sysdep/unix/io.c:1747:12: warning: assigning to 'byte *' (aka 'unsigned char *') from 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1747 | s->ttx = ""; /* Force s->ttx != s->tpos */ | ^ ~~ sysdep/unix/io.c:1758:12: warning: assigning to 'byte *' (aka 'unsigned char *') from 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1758 | s->ttx = ""; /* Force s->ttx != s->tpos */ | ^ ~~ sysdep/unix/io.c:2222:7: warning: 'ssh_channel_select' is deprecated [-Wdeprecated-declarations] 2222 | if (ssh_channel_select(rchans, NULL, NULL, &timev) == SSH_EINTR) | ^ /usr/local/include/libssh/libssh.h:584:1: note: 'ssh_channel_select' has been explicitly marked deprecated here 584 | SSH_DEPRECATED LIBSSH_API int ssh_channel_select(ssh_channel *readchans, ssh_channel *writechans, ssh_channel *exceptchans, struct | ^ /usr/local/include/libssh/libssh.h:81:40: note: expanded from macro 'SSH_DEPRECATED' 81 | #define SSH_DEPRECATED __attribute__ ((deprecated)) | ^ sysdep/unix/io.c:2400:54: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 2400 | if (getsockopt(s->fd, SOL_SOCKET, SO_ERROR, &se, &sse) < 0) | ^~~~ /usr/include/sys/socket.h:706:72: note: passing argument to parameter here 706 | int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict); | ^ sysdep/unix/io.c:2651:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2651 | if (t = timers_first(&main_birdloop.time)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io.c:2651:13: note: place parentheses around the assignment to silence this warning 2651 | if (t = timers_first(&main_birdloop.time)) | ^ | ( ) sysdep/unix/io.c:2651:13: note: use '==' to turn this assignment into an equality comparison 2651 | if (t = timers_first(&main_birdloop.time)) | ^ | == 20 warnings generated. CC -o obj/sysdep/unix/io-loop.o -c sysdep/unix/io-loop.c In file included from sysdep/unix/io-loop.c:17: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io-loop.c:20: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io-loop.c:29: In file included from ./sysdep/unix/io-loop.h:81: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io-loop.c:29: ./sysdep/unix/io-loop.h:84:35: warning: redefinition of typedef 'thread_group' is a C11 feature [-Wtypedef-redefinition] 84 | typedef union thread_group_public thread_group; | ^ ./lib/io-loop.h:37:35: note: previous definition is here 37 | typedef union thread_group_public thread_group; | ^ In file included from sysdep/unix/io-loop.c:29: In file included from ./sysdep/unix/io-loop.h:119: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io-loop.c:30: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/io-loop.c:31: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == sysdep/unix/io-loop.c:605:3: warning: redefinition of typedef 'thread_group' is a C11 feature [-Wtypedef-redefinition] 605 | } thread_group; | ^ ./sysdep/unix/io-loop.h:84:35: note: previous definition is here 84 | typedef union thread_group_public thread_group; | ^ In file included from sysdep/unix/io-loop.c:607: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == sysdep/unix/io-loop.c:896:32: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 896 | if (this_thread->busy_active = val) | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ sysdep/unix/io-loop.c:896:32: note: place parentheses around the assignment to silence this warning 896 | if (this_thread->busy_active = val) | ^ | ( ) sysdep/unix/io-loop.c:896:32: note: use '==' to turn this assignment into an equality comparison 896 | if (this_thread->busy_active = val) | ^ | == sysdep/unix/io-loop.c:1174:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1174 | if (e = pthread_attr_init(&thr->thread_attr)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1174:13: note: place parentheses around the assignment to silence this warning 1174 | if (e = pthread_attr_init(&thr->thread_attr)) | ^ | ( ) sysdep/unix/io-loop.c:1174:13: note: use '==' to turn this assignment into an equality comparison 1174 | if (e = pthread_attr_init(&thr->thread_attr)) | ^ | == sysdep/unix/io-loop.c:1182:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1182 | if (e = pthread_attr_setdetachstate(&thr->thread_attr, PTHREAD_CREATE_DETACHED)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1182:13: note: place parentheses around the assignment to silence this warning 1182 | if (e = pthread_attr_setdetachstate(&thr->thread_attr, PTHREAD_CREATE_DETACHED)) | ^ | ( ) sysdep/unix/io-loop.c:1182:13: note: use '==' to turn this assignment into an equality comparison 1182 | if (e = pthread_attr_setdetachstate(&thr->thread_attr, PTHREAD_CREATE_DETACHED)) | ^ | == sysdep/unix/io-loop.c:1185:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1185 | if (e = pthread_create(&thr->thread_id, &thr->thread_attr, bird_thread_main, thr)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1185:13: note: place parentheses around the assignment to silence this warning 1185 | if (e = pthread_create(&thr->thread_id, &thr->thread_attr, bird_thread_main, thr)) | ^ | ( ) sysdep/unix/io-loop.c:1185:13: note: use '==' to turn this assignment into an equality comparison 1185 | if (e = pthread_create(&thr->thread_id, &thr->thread_attr, bird_thread_main, thr)) | ^ | == sysdep/unix/io-loop.c:1436:14: warning: passing 'char[7]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1436 | new_config, "worker", | ^~~~~~~~ ./conf/conf.h:308:48: note: expanded from macro 'cf_implicit_symbol' 308 | struct symbol *sym_ = cf_get_symbol(conf_, name_); \ | ^~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ sysdep/unix/io-loop.c:1445:14: warning: passing 'char[8]' to parameter of type 'const byte *' (aka 'const unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1445 | new_config, "express", | ^~~~~~~~~ ./conf/conf.h:308:48: note: expanded from macro 'cf_implicit_symbol' 308 | struct symbol *sym_ = cf_get_symbol(conf_, name_); \ | ^~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ sysdep/unix/io-loop.c:1749:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1749 | while (t = timers_first(&loop->time)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1749:12: note: place parentheses around the assignment to silence this warning 1749 | while (t = timers_first(&loop->time)) | ^ | ( ) sysdep/unix/io-loop.c:1749:12: note: use '==' to turn this assignment into an equality comparison 1749 | while (t = timers_first(&loop->time)) | ^ | == sysdep/unix/io-loop.c:1799:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1799 | ltt = atomic_load_explicit(&loop->thread_transition, memory_order_acquire); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1799:11: note: place parentheses around the assignment to silence this warning 1799 | ltt = atomic_load_explicit(&loop->thread_transition, memory_order_acquire); | ^ | ( ) sysdep/unix/io-loop.c:1799:11: note: use '==' to turn this assignment into an equality comparison 1799 | ltt = atomic_load_explicit(&loop->thread_transition, memory_order_acquire); | ^ | == 17 warnings generated. CC -o obj/sysdep/unix/krt.o -c sysdep/unix/krt.c In file included from sysdep/unix/krt.c:54: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:55: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:55: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:55: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:55: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:56: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:56: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:56: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:56: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/krt.c:57: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == sysdep/unix/krt.c:941:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 941 | RT_FEED_WALK(&req, f) | ^~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/krt.c:941:5: note: place parentheses around the assignment to silence this warning 941 | RT_FEED_WALK(&req, f) | ^ | ( ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ sysdep/unix/krt.c:941:5: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:249:44: note: expanded from macro 'RT_FEED_WALK' 249 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ 13 warnings generated. CC -o obj/sysdep/unix/log.o -c sysdep/unix/log.c In file included from sysdep/unix/log.c:26: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/log.c:27: In file included from ./nest/cli.h:15: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/log.c:27: In file included from ./nest/cli.h:17: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/log.c:27: In file included from ./nest/cli.h:69: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/log.c:33: In file included from ./sysdep/unix/io-loop.h:81: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/log.c:33: ./sysdep/unix/io-loop.h:84:35: warning: redefinition of typedef 'thread_group' is a C11 feature [-Wtypedef-redefinition] 84 | typedef union thread_group_public thread_group; | ^ ./lib/io-loop.h:37:35: note: previous definition is here 37 | typedef union thread_group_public thread_group; | ^ In file included from sysdep/unix/log.c:33: In file included from ./sysdep/unix/io-loop.h:119: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == sysdep/unix/log.c:290:33: warning: assigning to 'byte *' (aka 'unsigned char *') from 'char[2560]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 290 | buf->buf.start = buf->buf.pos = buf->block; | ^ ~~~~~~~~~~ sysdep/unix/log.c:291:16: warning: assigning to 'byte *' (aka 'unsigned char *') from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 291 | buf->buf.end = buf->block + sizeof buf->block; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/log.c:300:33: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 300 | int t = tm_format_real_time(buf->buf.pos, buf->buf.end - buf->buf.pos, fmt, current_real_time()); | ^~~~~~~~~~~~ ./lib/timer.h:140:31: note: passing argument to parameter 'x' here 140 | int tm_format_real_time(char *x, size_t max, const char *fmt, btime t); | ^ sysdep/unix/log.c:317:33: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 317 | int t = tm_format_real_time(buf->buf.pos, buf->buf.end - buf->buf.pos, fmt, current_real_time()); | ^~~~~~~~~~~~ ./lib/timer.h:140:31: note: passing argument to parameter 'x' here 140 | int tm_format_real_time(char *x, size_t max, const char *fmt, btime t); | ^ sysdep/unix/log.c:586:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 586 | ol = atomic_load_explicit(pprev, memory_order_acquire); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/log.c:586:10: note: place parentheses around the assignment to silence this warning 586 | ol = atomic_load_explicit(pprev, memory_order_acquire); | ^ | ( ) sysdep/unix/log.c:586:10: note: use '==' to turn this assignment into an equality comparison 586 | ol = atomic_load_explicit(pprev, memory_order_acquire); | ^ | == 12 warnings generated. CC -o obj/sysdep/unix/main.o -c sysdep/unix/main.c In file included from sysdep/unix/main.c:26: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:32: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:35: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/main.c:36: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from sysdep/unix/main.c:39: In file included from ./nest/cli.h:69: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == In file included from sysdep/unix/main.c:447: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == 18 warnings generated. CC -o obj/sysdep/unix/random.o -c sysdep/unix/random.c In file included from sysdep/unix/random.c:17: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/sysdep/unix/domain.o -c sysdep/unix/domain.c In file included from sysdep/unix/domain.c:19: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/domain.c:20: In file included from ./lib/timer.h:15: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/unix/domain.c:22: In file included from ./conf/conf.h:16: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 3 warnings generated. CC -o obj/sysdep/bsd-netlink/netlink.o -c sysdep/bsd-netlink/netlink.c In file included from sysdep/bsd-netlink/netlink.c:18: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:201: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:226: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:20: In file included from ./lib/obstacle.h:27: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:162: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:229: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:252: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:19: In file included from ./nest/route.h:191: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from sysdep/bsd-netlink/netlink.c:20: In file included from ./nest/protocol.h:221: ./lib/tlists.h:97:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if (node->TLIST_ITEM.next = list->first) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ ./lib/tlists.h:97:29: note: place parentheses around the assignment to silence this warning 97 | if (node->TLIST_ITEM.next = list->first) | ^ | ( ) ./lib/tlists.h:97:29: note: use '==' to turn this assignment into an equality comparison 97 | if (node->TLIST_ITEM.next = list->first) | ^ | == ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == ./lib/tlists.h:151:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/tlists.h:151:29: note: place parentheses around the assignment to silence this warning 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | ( ) ./lib/tlists.h:151:29: note: use '==' to turn this assignment into an equality comparison 151 | if (node->TLIST_ITEM.next = after->TLIST_ITEM.next) | ^ | == sysdep/bsd-netlink/netlink.c:980:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 980 | else | ^ sysdep/bsd-netlink/netlink.c:1352:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1352 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1352:12: note: place parentheses around the assignment to silence this warning 1352 | while (h = nl_get_scan()) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1352:12: note: use '==' to turn this assignment into an equality comparison 1352 | while (h = nl_get_scan()) | ^ | == sysdep/bsd-netlink/netlink.c:1378:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1378 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1378:12: note: place parentheses around the assignment to silence this warning 1378 | while (h = nl_get_scan()) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1378:12: note: use '==' to turn this assignment into an equality comparison 1378 | while (h = nl_get_scan()) | ^ | == sysdep/bsd-netlink/netlink.c:1385:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1385 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1385:12: note: place parentheses around the assignment to silence this warning 1385 | while (h = nl_get_scan()) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1385:12: note: use '==' to turn this assignment into an equality comparison 1385 | while (h = nl_get_scan()) | ^ | == sysdep/bsd-netlink/netlink.c:1538:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1538 | else if (ea = ea_find(eattrs, &ea_krt_scope)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1538:15: note: place parentheses around the assignment to silence this warning 1538 | else if (ea = ea_find(eattrs, &ea_krt_scope)) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1538:15: note: use '==' to turn this assignment into an equality comparison 1538 | else if (ea = ea_find(eattrs, &ea_krt_scope)) | ^ | == sysdep/bsd-netlink/netlink.c:1545:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1545 | if (ea = ea_find(eattrs, &ea_krt_prefsrc)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1545:10: note: place parentheses around the assignment to silence this warning 1545 | if (ea = ea_find(eattrs, &ea_krt_prefsrc)) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1545:10: note: use '==' to turn this assignment into an equality comparison 1545 | if (ea = ea_find(eattrs, &ea_krt_prefsrc)) | ^ | == sysdep/bsd-netlink/netlink.c:1548:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1548 | if (ea = ea_find(eattrs, &ea_krt_realm)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1548:10: note: place parentheses around the assignment to silence this warning 1548 | if (ea = ea_find(eattrs, &ea_krt_realm)) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1548:10: note: use '==' to turn this assignment into an equality comparison 1548 | if (ea = ea_find(eattrs, &ea_krt_realm)) | ^ | == sysdep/bsd-netlink/netlink.c:1557:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1557 | while (ea = ea_walk(&ews, ea_krt_metrics[0].id, KRT_METRICS_MAX)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1557:13: note: place parentheses around the assignment to silence this warning 1557 | while (ea = ea_walk(&ews, ea_krt_metrics[0].id, KRT_METRICS_MAX)) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1557:13: note: use '==' to turn this assignment into an equality comparison 1557 | while (ea = ea_walk(&ews, ea_krt_metrics[0].id, KRT_METRICS_MAX)) | ^ | == sysdep/bsd-netlink/netlink.c:1563:15: warning: assigning to 'const char *' from 'const byte[0]' (aka 'const unsigned char[0]') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 1563 | cc_algo = ea->u.ptr->data; | ^ ~~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1964:4: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1964 | else | ^ sysdep/bsd-netlink/netlink.c:1997:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1997 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/bsd-netlink/netlink.c:1997:12: note: place parentheses around the assignment to silence this warning 1997 | while (h = nl_get_scan()) | ^ | ( ) sysdep/bsd-netlink/netlink.c:1997:12: note: use '==' to turn this assignment into an equality comparison 1997 | while (h = nl_get_scan()) | ^ | == sysdep/bsd-netlink/netlink.c:2227:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2227 | HASH_REMOVE2(nl_table_map, RTH, krt_pool, p); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ sysdep/bsd-netlink/netlink.c:2227:3: note: place parentheses around the assignment to silence this warning ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ sysdep/bsd-netlink/netlink.c:2227:3: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:171:24: note: expanded from macro 'HASH_REMOVE2' 171 | HASH_TYPE(v) *_n = HASH_REMOVE(v, id, node); \ | ^ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ^ 24 warnings generated. LD -L/usr/local/lib -pthread -o bird obj/conf/cf-parse.tab.o obj/conf/cf-lex.o obj/conf/conf.o obj/filter/filter.o obj/filter/data.o obj/filter/f-util.o obj/filter/tree.o obj/filter/trie.o obj/filter/inst-gen.o obj/lib/a-path.o obj/lib/a-set.o obj/lib/bitmap.o obj/lib/bitops.o obj/lib/blake2s.o obj/lib/blake2b.o obj/lib/checksum.o obj/lib/defer.o obj/lib/event.o obj/lib/flowspec.o obj/lib/idm.o obj/lib/ip.o obj/lib/lists.o obj/lib/lockfree.o obj/lib/mac.o obj/lib/md5.o obj/lib/mempool.o obj/lib/net.o obj/lib/netindex.o obj/lib/patmatch.o obj/lib/printf.o obj/lib/rcu.o obj/lib/resource.o obj/lib/sha1.o obj/lib/sha256.o obj/lib/sha512.o obj/lib/slab.o obj/lib/slists.o obj/lib/strtoul.o obj/lib/tbf.o obj/lib/timer.o obj/lib/xmalloc.o obj/nest/cli.o obj/nest/cmds.o obj/nest/iface.o obj/nest/locks.o obj/nest/mpls.o obj/nest/neighbor.o obj/nest/password.o obj/nest/proto.o obj/nest/proto-build.o obj/nest/rt-attr.o obj/nest/rt-dev.o obj/nest/rt-export.o obj/nest/rt-fib.o obj/nest/rt-show.o obj/nest/rt-table.o obj/proto/babel/babel.o obj/proto/babel/packets.o obj/proto/bfd/bfd.o obj/proto/bfd/packets.o obj/proto/bgp/attrs.o obj/proto/bgp/bgp.o obj/proto/bgp/packets.o obj/proto/mrt/mrt.o obj/proto/ospf/dbdes.o obj/proto/ospf/hello.o obj/proto/ospf/iface.o obj/proto/ospf/lsack.o obj/proto/ospf/lsalib.o obj/proto/ospf/lsreq.o obj/proto/ospf/lsupd.o obj/proto/ospf/neighbor.o obj/proto/ospf/ospf.o obj/proto/ospf/packet.o obj/proto/ospf/rt.o obj/proto/ospf/topology.o obj/proto/pipe/pipe.o obj/proto/radv/packets.o obj/proto/radv/radv.o obj/proto/rip/packets.o obj/proto/rip/rip.o obj/proto/rpki/rpki.o obj/proto/rpki/packets.o obj/proto/rpki/tcp_transport.o obj/proto/rpki/ssh_transport.o obj/proto/rpki/transport.o obj/proto/static/static.o obj/sysdep/unix/alloc.o obj/sysdep/unix/io.o obj/sysdep/unix/io-loop.o obj/sysdep/unix/krt.o obj/sysdep/unix/log.o obj/sysdep/unix/main.o obj/sysdep/unix/random.o obj/sysdep/unix/domain.o obj/sysdep/bsd-netlink/netlink.o -lssh CC -o obj/client/commands.o -c client/commands.c In file included from client/commands.c:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/client/util.o -c client/util.c In file included from client/util.c:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. CC -o obj/client/client.o -c client/client.c In file included from client/client.c:33: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from client/client.c:37: In file included from ./sysdep/unix/unix.h:13: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == client/client.c:332:19: warning: passing 'byte *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 332 | server_got_reply(start); | ^~~~~ client/client.c:271:24: note: passing argument to parameter 'x' here 271 | server_got_reply(char *x) | ^ client/client.c:343:14: warning: passing 'byte[4096]' (aka 'unsigned char[4096]') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 343 | strcpy(server_read_buf, "?"); | ^~~~~~~~~~~~~~~ /usr/include/string.h:87:31: note: passing argument to parameter here 87 | char *strcpy(char * __restrict, const char * __restrict); | ^ 4 warnings generated. CC -o obj/client/birdcl.o -c client/birdcl.c In file included from client/birdcl.c:19: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from client/birdcl.c:23: In file included from ./sysdep/unix/unix.h:13: In file included from ./lib/io-loop.h:98: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 2 warnings generated. LD -L/usr/local/lib -pthread -o birdcl obj/client/commands.o obj/client/util.o obj/client/client.o obj/client/birdcl.o CC -o obj/client/birdc.o -c client/birdc.c In file included from client/birdc.c:18: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h:37: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 1 warning generated. LD -L/usr/local/lib -pthread -o birdc obj/client/commands.o obj/client/util.o obj/client/client.o obj/client/birdc.o -lreadline -ltinfo =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Staging for bird3-3.1.5 ===> Generating temporary packing list ===> Creating groups /usr/bin/install -c -d /wrkdirs/usr/ports/net/bird3/work/stage//usr/local/sbin /wrkdirs/usr/ports/net/bird3/work/stage//usr/local/etc /wrkdirs/usr/ports/net/bird3/work/stage//var/run for BIN in bird birdcl birdc ; do \ install -s -m 555 ./$BIN /wrkdirs/usr/ports/net/bird3/work/stage//usr/local/sbin/$BIN ; \ done if ! test -f /wrkdirs/usr/ports/net/bird3/work/stage//usr/local/etc/bird.conf ; then \ install -m 0644 ./doc/bird.conf.example /wrkdirs/usr/ports/net/bird3/work/stage//usr/local/etc/bird.conf.sample ; \ else \ echo "Not overwriting old bird.conf" ; \ fi ====> Compressing man pages (compress-man) ===> Staging rc.d startup script(s) =========================================================================== =================================================== ===== env: 'PKG_NOTES=build_timestamp ports_top_git_hash ports_top_checkout_unclean port_git_hash port_checkout_unclean built_by' 'PKG_NOTE_build_timestamp=2025-12-16T20:39:26+0000' 'PKG_NOTE_ports_top_git_hash=10f7dee57a4c' 'PKG_NOTE_ports_top_checkout_unclean=no' 'PKG_NOTE_port_git_hash=01152f95b154' 'PKG_NOTE_port_checkout_unclean=no' 'PKG_NOTE_built_by=poudriere-git-3.4.2' NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Building packages for bird3-3.1.5 ===> Building bird3-3.1.5 =========================================================================== =>> Cleaning up wrkdir ===> Cleaning for bird3-3.1.5 build of net/bird3 | bird3-3.1.5 ended at Tue Dec 16 15:41:23 EST 2025 build time: 00:02:00