Warning: Permanently added '2620:52:6:1161:dead:beef:cafe:c158' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/10928416-fedora-rawhide-ppc64le --chroot fedora-rawhide-ppc64le Version: 1.9 PID: 3046 Logging PID: 3048 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 10928416, 'buildroot_pkgs': ['fedora-clang-default-cc'], 'chroot': 'fedora-rawhide-ppc64le', 'enable_net': False, 'fedora_review': False, 'git_hash': 'e680563d1295f6e811e335aa0ac0d9f1307a1d3d', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/@fedora-llvm-team/clang-monthly-fedora-rebuild/bird', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'bird', 'package_version': '3.3.2-1', 'project_dirname': 'clang-monthly-fedora-rebuild', 'project_name': 'clang-monthly-fedora-rebuild', 'project_owner': '@fedora-llvm-team', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/@fedora-llvm-team/clang-monthly-fedora-rebuild/fedora-rawhide-ppc64le/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None, 'repo_gpgcheck': False}, {'baseurl': 'https://download.copr.fedorainfracloud.org/results/tstellar/fedora-clang-default-cc/fedora-rawhide-ppc64le/', 'id': 'copr_tstellar_fedora_clang_default_cc', 'name': 'Additional repo copr_tstellar_fedora_clang_default_cc', 'repo_gpgcheck': False}, {'baseurl': 'https://download.copr.fedorainfracloud.org/results/@fedora-llvm-team/llvm-snapshots-big-merge-20260827/fedora-rawhide-ppc64le/', 'id': 'copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827', 'module_hotfixes': True, 'name': 'Additional repo copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827', 'repo_gpgcheck': False}], 'sandbox': '@fedora-llvm-team/clang-monthly-fedora-rebuild--kkleine', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': 0, 'submitter': 'kkleine', 'tags': [], 'task_id': '10928416-fedora-rawhide-ppc64le', 'timeout': 90000, 'uses_devel_repo': False, 'with_opts': ['toolchain_clang', 'clang_lto'], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/@fedora-llvm-team/clang-monthly-fedora-rebuild/bird /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/@fedora-llvm-team/clang-monthly-fedora-rebuild/bird', '/var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird'... Running: git checkout e680563d1295f6e811e335aa0ac0d9f1307a1d3d -- cmd: ['git', 'checkout', 'e680563d1295f6e811e335aa0ac0d9f1307a1d3d', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird rc: 0 stdout: stderr: Note: switching to 'e680563d1295f6e811e335aa0ac0d9f1307a1d3d'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at e680563 automatic import of bird Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources INFO: Downloading bird-3.3.2.tar.gz INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -H 'Accept-Encoding: identity' -o bird-3.3.2.tar.gz --location --connect-timeout 60 --retry 3 --retry-delay 10 --remote-time --show-error --fail --retry-all-errors https://copr-dist-git.fedorainfracloud.org/repo/pkgs/@fedora-llvm-team/clang-monthly-fedora-rebuild/bird/bird-3.3.2.tar.gz/md5/a9ca0d29e9531c0add78e7b3e5d41b3a/bird-3.3.2.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed tail: /var/lib/copr-rpmbuild/main.log: file truncated 100 2.73M 100 2.73M 0 0 15.49M 0 0 INFO: Reading stdout from command: md5sum bird-3.3.2.tar.gz Running (timeout=90000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird/bird.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1788245774.154554 -r /var/lib/copr-rpmbuild/results/configs/child.cfg --with toolchain_clang --with clang_lto INFO: mock.py version 6.8 starting (python version = 3.14.5, NVR = mock-6.8-1.fc44), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird/bird.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1788245774.154554 -r /var/lib/copr-rpmbuild/results/configs/child.cfg --with toolchain_clang --with clang_lto Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird/bird.spec) Config(fedora-rawhide-ppc64le) Start: clean chroot Finish: clean chroot Mock Version: 6.8 INFO: Mock Version: 6.8 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-ppc64le-bootstrap-1788245774.154554/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using container image: registry.fedoraproject.org/fedora:rawhide INFO: Pulling image: registry.fedoraproject.org/fedora:rawhide INFO: Tagging container image as mock-bootstrap-9b559a86-d55c-4bf6-9bfb-0df2fa7520c2 INFO: Checking that 3fe53bf8ca59a4094215339357ece5803d87f9c5feaa623385033dadd5046c14 image matches host's architecture INFO: Copy content of container 3fe53bf8ca59a4094215339357ece5803d87f9c5feaa623385033dadd5046c14 to /var/lib/mock/fedora-rawhide-ppc64le-bootstrap-1788245774.154554/root INFO: mounting 3fe53bf8ca59a4094215339357ece5803d87f9c5feaa623385033dadd5046c14 with podman image mount INFO: image 3fe53bf8ca59a4094215339357ece5803d87f9c5feaa623385033dadd5046c14 as /var/lib/containers/storage/overlay/fc8d17b1b802f473774fc4159a035c59f6501542f841e390d4076b6a33ebe9a6/merged INFO: umounting image 3fe53bf8ca59a4094215339357ece5803d87f9c5feaa623385033dadd5046c14 (/var/lib/containers/storage/overlay/fc8d17b1b802f473774fc4159a035c59f6501542f841e390d4076b6a33ebe9a6/merged) with podman image umount INFO: Removing image mock-bootstrap-9b559a86-d55c-4bf6-9bfb-0df2fa7520c2 INFO: Package manager dnf5 detected and used (fallback) INFO: Not updating bootstrap chroot, bootstrap_image_ready=True Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf5 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-6.1.0-1.fc46.ppc64le rpm-sequoia-1.10.2-5.fc45.ppc64le dnf5-5.4.3.0-2.fc46.ppc64le dnf5-plugins-5.4.3.0-2.fc46.ppc64le Start: installing minimal buildroot with dnf5 Updating and loading repositories: Additional repo copr_tstellar_fedora_c 100% | 1.7 KiB/s | 2.5 KiB | 00m01s Additional repo copr_fedora_llvm_team_ 100% | 15.2 KiB/s | 26.8 KiB | 00m02s fedora 100% | 7.4 MiB/s | 20.0 MiB | 00m03s Copr repository 100% | 1.1 MiB/s | 2.9 MiB | 00m03s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash ppc64le 0:5.3.15-2.fc45 copr_base 8.8 MiB bzip2 ppc64le 0:1.0.8-24.fc45 fedora 170.8 KiB coreutils ppc64le 0:9.11-6.fc45 fedora 9.6 MiB cpio ppc64le 0:2.15-10.fc45 copr_base 1.2 MiB diffutils ppc64le 0:3.12-6.fc45 fedora 1.7 MiB fedora-release-common noarch 0:46-0.1 fedora 4.6 KiB findutils ppc64le 1:4.11.0-2.fc45 fedora 2.1 MiB gawk ppc64le 0:5.4.1-1.fc45 fedora 3.2 MiB glibc-minimal-langpack ppc64le 0:2.44.9000-1.fc46 fedora 0.0 B grep ppc64le 0:3.12-4.fc45 fedora 1.0 MiB gzip ppc64le 0:1.14-4.fc45 copr_base 437.5 KiB info ppc64le 0:7.3-3.fc45 fedora 488.1 KiB patch ppc64le 0:2.8-5.fc45 fedora 262.3 KiB redhat-rpm-config noarch 0:344-5.fc45 fedora 184.2 KiB rpm-build ppc64le 0:6.1.0-1.fc46 fedora 679.8 KiB sed ppc64le 0:4.10-2.fc45 fedora 942.3 KiB shadow-utils ppc64le 2:4.20.0-1.fc45 fedora 4.8 MiB tar ppc64le 2:1.35-9.fc45 fedora 3.1 MiB unzip ppc64le 0:6.0-71.fc45 fedora 533.4 KiB util-linux ppc64le 0:2.42.2-3.fc45 fedora 7.0 MiB which ppc64le 0:2.25-2.fc46 copr_base 122.9 KiB xz ppc64le 1:5.8.3-2.fc45 fedora 1.5 MiB Installing dependencies: R-srpm-macros noarch 0:1.3.7-3.fc45 fedora 3.5 KiB add-determinism ppc64le 0:0.7.3-3.fc45 fedora 2.3 MiB alternatives ppc64le 0:1.33-6.fc45 fedora 89.9 KiB ansible-srpm-macros noarch 0:1-22.fc45 fedora 35.7 KiB audit-libs ppc64le 0:4.2.1-2.fc45 fedora 550.2 KiB binutils ppc64le 0:2.47-1.fc45 fedora 33.7 MiB build-reproducibility-srpm-macros noarch 0:0.7.3-3.fc45 fedora 1.2 KiB bzip2-libs ppc64le 0:1.0.8-24.fc45 fedora 136.4 KiB ca-certificates noarch 0:2025.2.80_v9.0.304-9.fc45 fedora 2.6 MiB cmake-srpm-macros noarch 0:4.3.0-5.fc45 fedora 524.0 B coreutils-common ppc64le 0:9.11-6.fc45 fedora 10.9 MiB crypto-policies noarch 0:20260713-2.gitc42da77.fc45 fedora 134.3 KiB curl ppc64le 0:8.22.0~rc3-1.fc46 fedora 526.7 KiB cyrus-sasl-lib ppc64le 0:2.1.28-37.fc45 fedora 2.9 MiB debugedit ppc64le 0:5.3-3.fc45 fedora 384.4 KiB dwz ppc64le 0:0.17-3.fc45 fedora 386.6 KiB ed ppc64le 0:1.22.6-1.fc46 fedora 222.8 KiB efi-srpm-macros noarch 0:6-9.fc45 fedora 40.3 KiB elfutils ppc64le 0:0.196-1.fc46 fedora 3.4 MiB elfutils-debuginfod-client ppc64le 0:0.196-1.fc46 fedora 143.4 KiB elfutils-libelf ppc64le 0:0.196-1.fc46 fedora 1.5 MiB elfutils-libs ppc64le 0:0.196-1.fc46 fedora 874.5 KiB erlang-srpm-macros noarch 0:0.3.11-2.fc45 fedora 1.9 KiB fedora-gpg-keys noarch 0:46-0.3 fedora 130.3 KiB fedora-release noarch 0:46-0.1 fedora 0.0 B fedora-release-identity-basic noarch 0:46-0.1 fedora 664.0 B fedora-repos noarch 0:46-0.3 fedora 4.9 KiB fedora-repos-rawhide noarch 0:46-0.3 fedora 2.2 KiB file ppc64le 0:5.47-3.fc45 fedora 141.0 KiB file-libs ppc64le 0:5.47-3.fc45 fedora 12.3 MiB filesystem ppc64le 0:3.18-59.fc45 fedora 112.0 B filesystem-srpm-macros noarch 0:3.18-59.fc45 fedora 38.2 KiB fips-provider ppc64le 0:1.5.2-3.fc45 fedora 4.7 MiB fonts-srpm-macros noarch 1:5.0.0-4.fc45 fedora 55.8 KiB forge-srpm-macros noarch 0:0.4.0-5.fc45 fedora 38.9 KiB fpc-srpm-macros noarch 0:1.3-17.fc45 fedora 144.0 B gap-srpm-macros noarch 0:2-3.fc45 fedora 2.1 KiB gdb-minimal ppc64le 0:17.2-4.fc45 fedora 16.3 MiB gdbm-libs ppc64le 1:1.23-12.fc45 copr_base 233.4 KiB ghc-srpm-macros noarch 0:1.10-2.fc45 fedora 792.0 B glibc ppc64le 0:2.44.9000-1.fc46 fedora 12.1 MiB glibc-common ppc64le 0:2.44.9000-1.fc46 fedora 1.5 MiB glibc-gconv-extra ppc64le 0:2.44.9000-1.fc46 fedora 18.5 MiB gmp ppc64le 1:6.3.0-6.fc45 fedora 786.1 KiB gnat-srpm-macros noarch 0:7-3.fc45 fedora 1.0 KiB gnome-srpm-macros noarch 0:1.0-2.fc45 fedora 3.5 KiB gnulib-l10n noarch 0:20241231-4.fc45 copr_base 655.0 KiB gnupg2 ppc64le 0:2.4.9-18.fc45 fedora 6.8 MiB gnupg2-dirmngr ppc64le 0:2.4.9-18.fc45 fedora 837.9 KiB gnupg2-gpg-agent ppc64le 0:2.4.9-18.fc45 fedora 974.1 KiB gnupg2-gpgconf ppc64le 0:2.4.9-18.fc45 fedora 321.5 KiB gnupg2-keyboxd ppc64le 0:2.4.9-18.fc45 fedora 233.1 KiB gnupg2-verify ppc64le 0:2.4.9-18.fc45 fedora 428.1 KiB gnutls ppc64le 0:3.8.13-3.fc45 fedora 4.1 MiB go-srpm-macros noarch 0:3.8.0-3.fc45 fedora 61.9 KiB gpgverify noarch 0:2.2-5.fc45 fedora 8.7 KiB ima-evm-utils-libs ppc64le 0:1.6.2-12.fc45 copr_base 92.2 KiB jansson ppc64le 0:2.14-5.fc45 fedora 156.9 KiB java-srpm-macros noarch 0:1-9.fc45 fedora 870.0 B json-c ppc64le 0:0.18-9.fc45 copr_base 138.3 KiB kernel-srpm-macros noarch 0:1.0-30.fc45 fedora 1.9 KiB keyutils-libs ppc64le 0:1.6.3-8.fc45 copr_base 97.7 KiB krb5-libs ppc64le 0:1.22.2-9.fc45 fedora 3.0 MiB libacl ppc64le 0:2.4.0-2.fc45 fedora 67.6 KiB libarchive ppc64le 0:3.8.9-1.fc46 fedora 1.3 MiB libassuan ppc64le 0:2.5.7-6.fc45 copr_base 216.0 KiB libattr ppc64le 0:2.6.0-2.fc45 copr_base 67.8 KiB libblkid ppc64le 0:2.42.2-3.fc45 fedora 354.3 KiB libbrotli ppc64le 0:1.2.0-6.fc45 fedora 1.0 MiB libcap ppc64le 0:2.78-2.fc45 fedora 506.7 KiB libcap-ng ppc64le 0:0.9.5-1.fc46 fedora 160.2 KiB libcbor ppc64le 0:0.14.0-3.fc45 fedora 139.5 KiB libcom_err ppc64le 0:1.47.4-2.fc45 fedora 110.9 KiB libcurl ppc64le 0:8.22.0~rc3-1.fc46 fedora 1.3 MiB libeconf ppc64le 0:0.7.9-4.fc45 copr_base 80.9 KiB libevent ppc64le 0:2.1.12-19.fc45 copr_base 1.3 MiB libfdisk ppc64le 0:2.42.2-3.fc45 fedora 482.8 KiB libffi ppc64le 0:3.5.2-3.fc45 fedora 347.5 KiB libfido2 ppc64le 0:1.17.0-5.fc45 copr_base 345.1 KiB libfsverity ppc64le 0:1.7-4.fc45 fedora 68.0 KiB libgcc ppc64le 0:16.2.1-2.fc46 fedora 286.4 KiB libgcrypt ppc64le 0:1.12.3-1.fc46 fedora 1.6 MiB libgomp ppc64le 0:16.2.1-2.fc46 fedora 657.0 KiB libgpg-error ppc64le 0:1.61-2.fc45 copr_base 1.0 MiB libidn2 ppc64le 0:2.3.8-4.fc45 fedora 560.1 KiB libksba ppc64le 0:1.8.1-1.fc46 fedora 535.8 KiB liblastlog2 ppc64le 0:2.42.2-3.fc45 fedora 137.2 KiB libmount ppc64le 0:2.42.2-3.fc45 fedora 548.3 KiB libnghttp2 ppc64le 0:1.69.0-5.fc45 fedora 197.8 KiB libnghttp3 ppc64le 0:1.18.0-1.fc45 fedora 206.7 KiB libpkgconf ppc64le 0:2.5.1-2.fc45 copr_base 133.7 KiB libpsl ppc64le 0:0.23.1-1.fc45 fedora 132.1 KiB librtas ppc64le 0:2.0.7-2.fc45 fedora 320.4 KiB libselinux ppc64le 0:3.11-4.fc45 fedora 329.1 KiB libselinux-utils ppc64le 0:3.11-4.fc45 fedora 1.3 MiB libsemanage ppc64le 0:3.11-3.fc45 fedora 423.9 KiB libsepol ppc64le 0:3.11-2.fc45 fedora 1.0 MiB libsmartcols ppc64le 0:2.42.2-3.fc45 fedora 289.4 KiB libssh ppc64le 0:0.12.2-1.fc45 fedora 913.5 KiB libssh-config noarch 0:0.12.2-1.fc45 fedora 277.0 B libstdc++ ppc64le 0:16.2.1-2.fc46 fedora 4.1 MiB libtasn1 ppc64le 0:4.21.0-2.fc45 copr_base 220.4 KiB libtool-ltdl ppc64le 0:2.5.4-11.fc45 fedora 93.8 KiB libunistring ppc64le 0:1.1-12.fc45 fedora 1.9 MiB libusb1 ppc64le 0:1.0.30-2.fc45 fedora 243.5 KiB libuuid ppc64le 0:2.42.2-3.fc45 fedora 69.2 KiB libverto ppc64le 0:0.3.2-13.fc45 fedora 69.0 KiB libxcrypt ppc64le 0:4.5.2-4.fc45 fedora 336.9 KiB libxml2 ppc64le 0:2.13.9-4.fc45 copr_base 2.3 MiB libzstd ppc64le 0:1.5.7-6.fc45 copr_base 1.0 MiB linkdupes ppc64le 0:0.7.3-3.fc45 fedora 838.4 KiB lua-libs ppc64le 0:5.5.1-2.fc46 fedora 393.9 KiB lua-srpm-macros noarch 0:1-18.fc45 fedora 1.3 KiB lz4-libs ppc64le 0:1.10.0-5.fc45 copr_base 260.8 KiB mpfr ppc64le 0:4.2.2-4.fc45 fedora 913.4 KiB ncurses-base noarch 0:6.6-3.fc45 fedora 329.7 KiB ncurses-libs ppc64le 0:6.6-3.fc45 fedora 1.5 MiB nettle ppc64le 0:4.0-5.fc45 fedora 965.1 KiB ngtcp2 ppc64le 0:1.22.1-3.fc45 fedora 405.1 KiB ngtcp2-crypto-ossl ppc64le 0:1.22.1-3.fc45 fedora 67.1 KiB npth ppc64le 0:1.8-5.fc45 fedora 93.0 KiB ocaml-srpm-macros noarch 0:11-4.fc45 fedora 1.9 KiB openblas-srpm-macros noarch 0:2-22.fc45 fedora 112.0 B openldap ppc64le 0:2.6.14-1.fc46 fedora 892.8 KiB openssl-libs ppc64le 1:4.0.2-1.fc46 fedora 7.1 MiB p11-kit ppc64le 0:0.26.5-1.fc45 fedora 3.3 MiB p11-kit-trust ppc64le 0:0.26.5-1.fc45 fedora 594.0 KiB package-notes-srpm-macros noarch 0:0.20-2.fc45 fedora 1.6 KiB pam-libs ppc64le 0:1.7.2-4.fc45 copr_base 285.9 KiB pcre2 ppc64le 0:10.47-1.fc45.2 copr_base 905.1 KiB pcre2-syntax noarch 0:10.47-1.fc45.2 copr_base 281.9 KiB perl-srpm-macros noarch 0:1-65.fc45 fedora 861.0 B pkgconf ppc64le 0:2.5.1-2.fc45 copr_base 114.7 KiB pkgconf-m4 noarch 0:2.5.1-2.fc45 copr_base 14.3 KiB pkgconf-pkg-config ppc64le 0:2.5.1-2.fc45 copr_base 990.0 B policycoreutils ppc64le 0:3.11-2.fc45 fedora 1.5 MiB popt ppc64le 0:1.19-11.fc45 copr_base 144.4 KiB publicsuffix-list-dafsa noarch 0:20260624-2.fc45 fedora 71.3 KiB pyproject-srpm-macros noarch 0:1.23.2-1.fc45 fedora 3.4 KiB python-srpm-macros noarch 0:3.15-2.fc45 fedora 51.6 KiB qt5-srpm-macros noarch 0:5.15.18-3.fc45 fedora 500.0 B qt6-srpm-macros noarch 0:6.11.2-1.fc46 fedora 472.0 B readline ppc64le 0:8.3-6.fc45 fedora 627.4 KiB redhat-systemd-presets noarch 0:102-3.fc45 fedora 1.0 KiB redhat-systemd-presets-common noarch 0:102-3.fc45 fedora 16.9 KiB rpm ppc64le 0:6.1.0-1.fc46 fedora 4.2 MiB rpm-build-libs ppc64le 0:6.1.0-1.fc46 fedora 327.8 KiB rpm-libs ppc64le 0:6.1.0-1.fc46 fedora 1.4 MiB rpm-plugin-selinux ppc64le 0:6.1.0-1.fc46 fedora 67.8 KiB rpm-sequoia ppc64le 0:1.10.2-5.fc45 fedora 4.8 MiB rpm-sign-libs ppc64le 0:6.1.0-1.fc46 fedora 67.5 KiB rust-srpm-macros noarch 0:28.5-2.fc45 fedora 5.5 KiB selinux-policy noarch 0:45.15-1.fc46 fedora 32.1 KiB selinux-policy-targeted noarch 0:45.15-1.fc46 fedora 19.0 MiB setup noarch 0:2.15.1-2.fc45 fedora 725.6 KiB sqlite-libs ppc64le 0:3.53.4-1.fc45 fedora 2.0 MiB systemd-libs ppc64le 0:261.2-1.fc45 fedora 3.3 MiB systemd-standalone-sysusers ppc64le 0:261.2-1.fc45 fedora 1.1 MiB tpm2-tss ppc64le 0:4.2.0-1.fc45 copr_base 2.4 MiB tree-sitter-srpm-macros noarch 0:0.4.6-2.fc45 fedora 8.6 KiB util-linux-core ppc64le 0:2.42.2-3.fc45 fedora 2.6 MiB xxhash-libs ppc64le 0:0.8.3-5.fc45 fedora 85.5 KiB xz-libs ppc64le 1:5.8.3-2.fc45 fedora 265.2 KiB zig-srpm-macros noarch 0:1-9.fc45 fedora 1.3 KiB zip ppc64le 0:3.0-46.fc45 fedora 889.2 KiB zlib-ng-compat ppc64le 0:2.3.3-6.fc45 fedora 197.3 KiB zstd ppc64le 0:1.5.7-6.fc45 copr_base 559.5 KiB Installing groups: Buildsystem building group Transaction Summary: Installing: 189 packages Total size of inbound packages is 76 MiB. Need to download 76 MiB. After this operation, 287 MiB extra will be used (install 287 MiB, remove 0 B). [ 1/189] fedora-release-common-0:46-0. 100% | 3.0 MiB/s | 18.2 KiB | 00m00s [ 2/189] glibc-minimal-langpack-0:2.44 100% | 15.6 MiB/s | 127.5 KiB | 00m00s [ 3/189] redhat-rpm-config-0:344-5.fc4 100% | 15.2 MiB/s | 77.7 KiB | 00m00s [ 4/189] coreutils-0:9.11-6.fc45.ppc64 100% | 52.6 MiB/s | 1.3 MiB | 00m00s [ 5/189] rpm-build-0:6.1.0-1.fc46.ppc6 100% | 13.6 MiB/s | 180.9 KiB | 00m00s [ 6/189] tar-2:1.35-9.fc45.ppc64le 100% | 45.6 MiB/s | 886.6 KiB | 00m00s [ 7/189] unzip-0:6.0-71.fc45.ppc64le 100% | 16.5 MiB/s | 202.6 KiB | 00m00s [ 8/189] bzip2-0:1.0.8-24.fc45.ppc64le 100% | 17.3 MiB/s | 53.3 KiB | 00m00s [ 9/189] diffutils-0:3.12-6.fc45.ppc64 100% | 56.6 MiB/s | 406.0 KiB | 00m00s [ 10/189] findutils-1:4.11.0-2.fc45.ppc 100% | 53.6 MiB/s | 603.7 KiB | 00m00s [ 11/189] gawk-0:5.4.1-1.fc45.ppc64le 100% | 70.9 MiB/s | 1.2 MiB | 00m00s [ 12/189] grep-0:3.12-4.fc45.ppc64le 100% | 37.7 MiB/s | 308.5 KiB | 00m00s [ 13/189] cpio-0:2.15-10.fc45.ppc64le 100% | 1.3 MiB/s | 302.1 KiB | 00m00s [ 14/189] info-0:7.3-3.fc45.ppc64le 100% | 20.2 MiB/s | 207.3 KiB | 00m00s [ 15/189] gzip-0:1.14-4.fc45.ppc64le 100% | 900.9 KiB/s | 176.6 KiB | 00m00s [ 16/189] patch-0:2.8-5.fc45.ppc64le 100% | 20.0 MiB/s | 123.0 KiB | 00m00s [ 17/189] sed-0:4.10-2.fc45.ppc64le 100% | 32.0 MiB/s | 327.4 KiB | 00m00s [ 18/189] shadow-utils-2:4.20.0-1.fc45. 100% | 65.0 MiB/s | 1.4 MiB | 00m00s [ 19/189] util-linux-0:2.42.2-3.fc45.pp 100% | 55.1 MiB/s | 1.3 MiB | 00m00s [ 20/189] xz-1:5.8.3-2.fc45.ppc64le 100% | 63.9 MiB/s | 654.1 KiB | 00m00s [ 21/189] coreutils-common-0:9.11-6.fc4 100% | 74.7 MiB/s | 2.2 MiB | 00m00s [ 22/189] filesystem-0:3.18-59.fc45.ppc 100% | 86.5 MiB/s | 1.8 MiB | 00m00s [ 23/189] bash-0:5.3.15-2.fc45.ppc64le 100% | 5.1 MiB/s | 1.9 MiB | 00m00s [ 24/189] which-0:2.25-2.fc46.ppc64le 100% | 431.8 KiB/s | 41.5 KiB | 00m00s [ 25/189] libacl-0:2.4.0-2.fc45.ppc64le 100% | 5.7 MiB/s | 29.2 KiB | 00m00s [ 26/189] gmp-1:6.3.0-6.fc45.ppc64le 100% | 28.4 MiB/s | 319.9 KiB | 00m00s [ 27/189] libcap-0:2.78-2.fc45.ppc64le 100% | 15.4 MiB/s | 94.4 KiB | 00m00s [ 28/189] glibc-0:2.44.9000-1.fc46.ppc6 100% | 61.3 MiB/s | 3.4 MiB | 00m00s [ 29/189] fedora-repos-0:46-0.3.noarch 100% | 1.6 MiB/s | 9.6 KiB | 00m00s [ 30/189] systemd-libs-0:261.2-1.fc45.p 100% | 27.6 MiB/s | 961.2 KiB | 00m00s [ 31/189] redhat-systemd-presets-0:102- 100% | 1.4 MiB/s | 8.5 KiB | 00m00s [ 32/189] openssl-libs-1:4.0.2-1.fc46.p 100% | 44.3 MiB/s | 2.4 MiB | 00m00s [ 33/189] R-srpm-macros-0:1.3.7-3.fc45. 100% | 619.4 KiB/s | 11.1 KiB | 00m00s [ 34/189] glibc-common-0:2.44.9000-1.fc 100% | 19.1 MiB/s | 429.4 KiB | 00m00s [ 35/189] ansible-srpm-macros-0:1-22.fc 100% | 3.9 MiB/s | 19.8 KiB | 00m00s [ 36/189] build-reproducibility-srpm-ma 100% | 2.6 MiB/s | 10.8 KiB | 00m00s [ 37/189] cmake-srpm-macros-0:4.3.0-5.f 100% | 3.4 MiB/s | 10.3 KiB | 00m00s [ 38/189] efi-srpm-macros-0:6-9.fc45.no 100% | 5.2 MiB/s | 21.4 KiB | 00m00s [ 39/189] dwz-0:0.17-3.fc45.ppc64le 100% | 28.6 MiB/s | 146.7 KiB | 00m00s [ 40/189] erlang-srpm-macros-0:0.3.11-2 100% | 3.2 MiB/s | 10.0 KiB | 00m00s [ 41/189] file-0:5.47-3.fc45.ppc64le 100% | 12.2 MiB/s | 50.0 KiB | 00m00s [ 42/189] filesystem-srpm-macros-0:3.18 100% | 8.6 MiB/s | 26.4 KiB | 00m00s [ 43/189] fonts-srpm-macros-1:5.0.0-4.f 100% | 13.3 MiB/s | 27.2 KiB | 00m00s [ 44/189] forge-srpm-macros-0:0.4.0-5.f 100% | 6.4 MiB/s | 19.7 KiB | 00m00s [ 45/189] fpc-srpm-macros-0:1.3-17.fc45 100% | 2.5 MiB/s | 7.8 KiB | 00m00s [ 46/189] gap-srpm-macros-0:2-3.fc45.no 100% | 4.5 MiB/s | 9.3 KiB | 00m00s [ 47/189] ghc-srpm-macros-0:1.10-2.fc45 100% | 2.8 MiB/s | 8.5 KiB | 00m00s [ 48/189] gnat-srpm-macros-0:7-3.fc45.n 100% | 2.8 MiB/s | 8.6 KiB | 00m00s [ 49/189] gnome-srpm-macros-0:1.0-2.fc4 100% | 2.2 MiB/s | 8.8 KiB | 00m00s [ 50/189] go-srpm-macros-0:3.8.0-3.fc45 100% | 6.8 MiB/s | 27.8 KiB | 00m00s [ 51/189] java-srpm-macros-0:1-9.fc45.n 100% | 1.6 MiB/s | 8.3 KiB | 00m00s [ 52/189] kernel-srpm-macros-0:1.0-30.f 100% | 2.0 MiB/s | 8.3 KiB | 00m00s [ 53/189] lua-srpm-macros-0:1-18.fc45.n 100% | 2.1 MiB/s | 8.7 KiB | 00m00s [ 54/189] ocaml-srpm-macros-0:11-4.fc45 100% | 2.9 MiB/s | 9.0 KiB | 00m00s [ 55/189] openblas-srpm-macros-0:2-22.f 100% | 2.4 MiB/s | 7.5 KiB | 00m00s [ 56/189] package-notes-srpm-macros-0:0 100% | 3.4 MiB/s | 10.5 KiB | 00m00s [ 57/189] perl-srpm-macros-0:1-65.fc45. 100% | 2.0 MiB/s | 8.4 KiB | 00m00s [ 58/189] pyproject-srpm-macros-0:1.23. 100% | 5.1 MiB/s | 15.6 KiB | 00m00s [ 59/189] python-srpm-macros-0:3.15-2.f 100% | 11.6 MiB/s | 23.9 KiB | 00m00s [ 60/189] qt6-srpm-macros-0:6.11.2-1.fc 100% | 3.0 MiB/s | 9.1 KiB | 00m00s [ 61/189] qt5-srpm-macros-0:5.15.18-3.f 100% | 2.0 MiB/s | 8.1 KiB | 00m00s [ 62/189] tree-sitter-srpm-macros-0:0.4 100% | 6.8 MiB/s | 14.0 KiB | 00m00s [ 63/189] rust-srpm-macros-0:28.5-2.fc4 100% | 2.8 MiB/s | 11.4 KiB | 00m00s [ 64/189] rpm-0:6.1.0-1.fc46.ppc64le 100% | 55.9 MiB/s | 572.0 KiB | 00m00s [ 65/189] zig-srpm-macros-0:1-9.fc45.no 100% | 1.7 MiB/s | 8.8 KiB | 00m00s [ 66/189] zip-0:3.0-46.fc45.ppc64le 100% | 38.6 MiB/s | 276.7 KiB | 00m00s [ 67/189] elfutils-libelf-0:0.196-1.fc4 100% | 24.0 MiB/s | 245.5 KiB | 00m00s [ 68/189] elfutils-0:0.196-1.fc46.ppc64 100% | 31.2 MiB/s | 574.5 KiB | 00m00s [ 69/189] libgcc-0:16.2.1-2.fc46.ppc64l 100% | 22.7 MiB/s | 116.2 KiB | 00m00s [ 70/189] rpm-build-libs-0:6.1.0-1.fc46 100% | 22.5 MiB/s | 138.4 KiB | 00m00s [ 71/189] libstdc++-0:16.2.1-2.fc46.ppc 100% | 58.4 MiB/s | 1.1 MiB | 00m00s [ 72/189] rpm-libs-0:6.1.0-1.fc46.ppc64 100% | 32.1 MiB/s | 526.2 KiB | 00m00s [ 73/189] mpfr-0:4.2.2-4.fc45.ppc64le 100% | 38.8 MiB/s | 357.4 KiB | 00m00s [ 74/189] audit-libs-0:4.2.1-2.fc45.ppc 100% | 22.1 MiB/s | 158.3 KiB | 00m00s [ 75/189] libsemanage-0:3.11-3.fc45.ppc 100% | 26.5 MiB/s | 135.4 KiB | 00m00s [ 76/189] libxcrypt-0:4.5.2-4.fc45.ppc6 100% | 22.7 MiB/s | 139.6 KiB | 00m00s [ 77/189] setup-0:2.15.1-2.fc45.noarch 100% | 22.0 MiB/s | 157.6 KiB | 00m00s [ 78/189] libblkid-0:2.42.2-3.fc45.ppc6 100% | 24.0 MiB/s | 147.5 KiB | 00m00s [ 79/189] libfdisk-0:2.42.2-3.fc45.ppc6 100% | 24.9 MiB/s | 178.2 KiB | 00m00s [ 80/189] liblastlog2-0:2.42.2-3.fc45.p 100% | 4.2 MiB/s | 25.5 KiB | 00m00s [ 81/189] binutils-0:2.47-1.fc45.ppc64l 100% | 63.2 MiB/s | 6.9 MiB | 00m00s [ 82/189] librtas-0:2.0.7-2.fc45.ppc64l 100% | 2.3 MiB/s | 86.3 KiB | 00m00s [ 83/189] libmount-0:2.42.2-3.fc45.ppc6 100% | 4.8 MiB/s | 192.4 KiB | 00m00s [ 84/189] libsmartcols-0:2.42.2-3.fc45. 100% | 15.8 MiB/s | 113.1 KiB | 00m00s [ 85/189] libuuid-0:2.42.2-3.fc45.ppc64 100% | 4.7 MiB/s | 28.8 KiB | 00m00s [ 86/189] xz-libs-1:5.8.3-2.fc45.ppc64l 100% | 20.6 MiB/s | 126.3 KiB | 00m00s [ 87/189] util-linux-core-0:2.42.2-3.fc 100% | 25.0 MiB/s | 615.1 KiB | 00m00s [ 88/189] ca-certificates-0:2025.2.80_v 100% | 47.0 MiB/s | 963.4 KiB | 00m00s [ 89/189] crypto-policies-0:20260713-2. 100% | 10.6 MiB/s | 97.5 KiB | 00m00s [ 90/189] glibc-gconv-extra-0:2.44.9000 100% | 40.2 MiB/s | 1.8 MiB | 00m00s [ 91/189] fedora-gpg-keys-0:46-0.3.noar 100% | 8.8 MiB/s | 143.8 KiB | 00m00s [ 92/189] fips-provider-0:1.5.2-3.fc45. 100% | 54.5 MiB/s | 1.7 MiB | 00m00s [ 93/189] fedora-repos-rawhide-0:46-0.3 100% | 694.1 KiB/s | 9.0 KiB | 00m00s [ 94/189] redhat-systemd-presets-common 100% | 1.0 MiB/s | 13.2 KiB | 00m00s [ 95/189] linkdupes-0:0.7.3-3.fc45.ppc6 100% | 35.7 MiB/s | 365.9 KiB | 00m00s [ 96/189] add-determinism-0:0.7.3-3.fc4 100% | 47.4 MiB/s | 874.1 KiB | 00m00s [ 97/189] elfutils-debuginfod-client-0: 100% | 6.9 MiB/s | 49.7 KiB | 00m00s [ 98/189] file-libs-0:5.47-3.fc45.ppc64 100% | 35.9 MiB/s | 881.0 KiB | 00m00s [ 99/189] elfutils-libs-0:0.196-1.fc46. 100% | 30.4 MiB/s | 311.5 KiB | 00m00s [100/189] libgomp-0:16.2.1-2.fc46.ppc64 100% | 33.4 MiB/s | 410.2 KiB | 00m00s [101/189] lua-libs-0:5.5.1-2.fc46.ppc64 100% | 22.1 MiB/s | 158.1 KiB | 00m00s [102/189] rpm-sign-libs-0:6.1.0-1.fc46. 100% | 6.7 MiB/s | 27.4 KiB | 00m00s [103/189] libselinux-0:3.11-4.fc45.ppc6 100% | 12.4 MiB/s | 114.2 KiB | 00m00s [104/189] rpm-sequoia-0:1.10.2-5.fc45.p 100% | 61.0 MiB/s | 1.5 MiB | 00m00s [105/189] sqlite-libs-0:3.53.4-1.fc45.p 100% | 30.1 MiB/s | 895.2 KiB | 00m00s [106/189] libsepol-0:3.11-2.fc45.ppc64l 100% | 16.9 MiB/s | 380.4 KiB | 00m00s [107/189] ncurses-libs-0:6.6-3.fc45.ppc 100% | 33.9 MiB/s | 381.8 KiB | 00m00s [108/189] ncurses-base-0:6.6-3.fc45.noa 100% | 12.3 MiB/s | 88.1 KiB | 00m00s [109/189] bzip2-libs-0:1.0.8-24.fc45.pp 100% | 9.7 MiB/s | 49.4 KiB | 00m00s [110/189] libcap-ng-0:0.9.5-1.fc46.ppc6 100% | 11.6 MiB/s | 35.5 KiB | 00m00s [111/189] readline-0:8.3-6.fc45.ppc64le 100% | 47.5 MiB/s | 243.0 KiB | 00m00s [112/189] zlib-ng-compat-0:2.3.3-6.fc45 100% | 17.4 MiB/s | 89.3 KiB | 00m00s [113/189] gnupg2-0:2.4.9-18.fc45.ppc64l 100% | 88.9 MiB/s | 1.7 MiB | 00m00s [114/189] gpgverify-0:2.2-5.fc45.noarch 100% | 3.7 MiB/s | 11.3 KiB | 00m00s [115/189] gnupg2-dirmngr-0:2.4.9-18.fc4 100% | 61.1 MiB/s | 313.0 KiB | 00m00s [116/189] gnupg2-gpg-agent-0:2.4.9-18.f 100% | 59.4 MiB/s | 304.1 KiB | 00m00s [117/189] pam-libs-0:1.7.2-4.fc45.ppc64 100% | 1.2 MiB/s | 58.1 KiB | 00m00s [118/189] gnupg2-gpgconf-0:2.4.9-18.fc4 100% | 30.6 MiB/s | 125.3 KiB | 00m00s [119/189] gnupg2-keyboxd-0:2.4.9-18.fc4 100% | 25.0 MiB/s | 102.5 KiB | 00m00s [120/189] gnupg2-verify-0:2.4.9-18.fc45 100% | 35.9 MiB/s | 184.0 KiB | 00m00s [121/189] libeconf-0:0.7.9-4.fc45.ppc64 100% | 789.6 KiB/s | 37.9 KiB | 00m00s [122/189] libgcrypt-0:1.12.3-1.fc46.ppc 100% | 45.1 MiB/s | 693.3 KiB | 00m00s [123/189] openldap-0:2.6.14-1.fc46.ppc6 100% | 21.7 MiB/s | 289.1 KiB | 00m00s [124/189] nettle-0:4.0-5.fc45.ppc64le 100% | 41.1 MiB/s | 462.5 KiB | 00m00s [125/189] gnutls-0:3.8.13-3.fc45.ppc64l 100% | 43.0 MiB/s | 1.4 MiB | 00m00s [126/189] libtool-ltdl-0:2.5.4-11.fc45. 100% | 3.8 MiB/s | 39.4 KiB | 00m00s [127/189] cyrus-sasl-lib-0:2.1.28-37.fc 100% | 37.6 MiB/s | 886.5 KiB | 00m00s [128/189] libfsverity-0:1.7-4.fc45.ppc6 100% | 3.1 MiB/s | 19.3 KiB | 00m00s [129/189] ima-evm-utils-libs-0:1.6.2-12 100% | 642.8 KiB/s | 29.6 KiB | 00m00s [130/189] debugedit-0:5.3-3.fc45.ppc64l 100% | 17.8 MiB/s | 91.3 KiB | 00m00s [131/189] popt-0:1.19-11.fc45.ppc64le 100% | 1.3 MiB/s | 60.7 KiB | 00m00s [132/189] libarchive-0:3.8.9-1.fc46.ppc 100% | 61.1 MiB/s | 500.3 KiB | 00m00s [133/189] libzstd-0:1.5.7-6.fc45.ppc64l 100% | 6.8 MiB/s | 380.7 KiB | 00m00s [134/189] curl-0:8.22.0~rc3-1.fc46.ppc6 100% | 49.2 MiB/s | 251.8 KiB | 00m00s [135/189] ed-0:1.22.6-1.fc46.ppc64le 100% | 21.4 MiB/s | 87.5 KiB | 00m00s [136/189] pkgconf-pkg-config-0:2.5.1-2. 100% | 206.3 KiB/s | 9.3 KiB | 00m00s [137/189] zstd-0:1.5.7-6.fc45.ppc64le 100% | 3.8 MiB/s | 184.6 KiB | 00m00s [138/189] libattr-0:2.6.0-2.fc45.ppc64l 100% | 378.6 KiB/s | 17.8 KiB | 00m00s [139/189] libevent-0:2.1.12-19.fc45.ppc 100% | 5.3 MiB/s | 273.7 KiB | 00m00s [140/189] pcre2-0:10.47-1.fc45.2.ppc64l 100% | 5.3 MiB/s | 273.0 KiB | 00m00s [141/189] libgpg-error-0:1.61-2.fc45.pp 100% | 4.8 MiB/s | 247.1 KiB | 00m00s [142/189] libidn2-0:2.3.8-4.fc45.ppc64l 100% | 34.5 MiB/s | 176.6 KiB | 00m00s [143/189] libxml2-0:2.13.9-4.fc45.ppc64 100% | 11.6 MiB/s | 735.4 KiB | 00m00s [144/189] lz4-libs-0:1.10.0-5.fc45.ppc6 100% | 1.8 MiB/s | 96.5 KiB | 00m00s [145/189] libunistring-0:1.1-12.fc45.pp 100% | 51.0 MiB/s | 574.7 KiB | 00m00s [146/189] p11-kit-0:0.26.5-1.fc45.ppc64 100% | 38.8 MiB/s | 556.8 KiB | 00m00s [147/189] libtasn1-0:4.21.0-2.fc45.ppc6 100% | 1.5 MiB/s | 81.3 KiB | 00m00s [148/189] p11-kit-trust-0:0.26.5-1.fc45 100% | 25.5 MiB/s | 156.9 KiB | 00m00s [149/189] npth-0:1.8-5.fc45.ppc64le 100% | 12.2 MiB/s | 24.9 KiB | 00m00s [150/189] libksba-0:1.8.1-1.fc46.ppc64l 100% | 35.4 MiB/s | 181.3 KiB | 00m00s [151/189] libassuan-0:2.5.7-6.fc45.ppc6 100% | 1.5 MiB/s | 69.5 KiB | 00m00s [152/189] tpm2-tss-0:4.2.0-1.fc45.ppc64 100% | 6.8 MiB/s | 364.7 KiB | 00m00s [153/189] json-c-0:0.18-9.fc45.ppc64le 100% | 980.4 KiB/s | 48.0 KiB | 00m00s [154/189] libffi-0:3.5.2-3.fc45.ppc64le 100% | 13.5 MiB/s | 41.6 KiB | 00m00s [155/189] alternatives-0:1.33-6.fc45.pp 100% | 13.5 MiB/s | 41.4 KiB | 00m00s [156/189] jansson-0:2.14-5.fc45.ppc64le 100% | 16.4 MiB/s | 50.5 KiB | 00m00s [157/189] libusb1-0:1.0.30-2.fc45.ppc64 100% | 16.9 MiB/s | 86.7 KiB | 00m00s [158/189] gdbm-libs-1:1.23-12.fc45.ppc6 100% | 1.4 MiB/s | 63.8 KiB | 00m00s [159/189] gnulib-l10n-0:20241231-4.fc45 100% | 3.0 MiB/s | 143.1 KiB | 00m00s [160/189] pkgconf-0:2.5.1-2.fc45.ppc64l 100% | 1.1 MiB/s | 50.2 KiB | 00m00s [161/189] pkgconf-m4-0:2.5.1-2.fc45.noa 100% | 302.4 KiB/s | 13.6 KiB | 00m00s [162/189] fedora-release-0:46-0.1.noarc 100% | 2.9 MiB/s | 11.9 KiB | 00m00s [163/189] systemd-standalone-sysusers-0 100% | 58.8 MiB/s | 421.2 KiB | 00m00s [164/189] libpkgconf-0:2.5.1-2.fc45.ppc 100% | 900.1 KiB/s | 42.3 KiB | 00m00s [165/189] xxhash-libs-0:0.8.3-5.fc45.pp 100% | 12.3 MiB/s | 37.8 KiB | 00m00s [166/189] fedora-release-identity-basic 100% | 4.1 MiB/s | 12.7 KiB | 00m00s [167/189] libcurl-0:8.22.0~rc3-1.fc46.p 100% | 37.2 MiB/s | 532.8 KiB | 00m00s [168/189] pcre2-syntax-0:10.47-1.fc45.2 100% | 2.9 MiB/s | 164.9 KiB | 00m00s [169/189] libnghttp3-0:1.18.0-1.fc45.pp 100% | 12.6 MiB/s | 77.4 KiB | 00m00s [170/189] krb5-libs-0:1.22.2-9.fc45.ppc 100% | 59.9 MiB/s | 859.2 KiB | 00m00s [171/189] libpsl-0:0.23.1-1.fc45.ppc64l 100% | 9.6 MiB/s | 68.5 KiB | 00m00s [172/189] libssh-0:0.12.2-1.fc45.ppc64l 100% | 44.4 MiB/s | 318.3 KiB | 00m00s [173/189] ngtcp2-0:1.22.1-3.fc45.ppc64l 100% | 23.5 MiB/s | 168.3 KiB | 00m00s [174/189] ngtcp2-crypto-ossl-0:1.22.1-3 100% | 8.9 MiB/s | 27.2 KiB | 00m00s [175/189] libverto-0:0.3.2-13.fc45.ppc6 100% | 7.1 MiB/s | 21.7 KiB | 00m00s [176/189] gdb-minimal-0:17.2-4.fc45.ppc 100% | 62.3 MiB/s | 4.9 MiB | 00m00s [177/189] libssh-config-0:0.12.2-1.fc45 100% | 343.8 KiB/s | 8.9 KiB | 00m00s [178/189] publicsuffix-list-dafsa-0:202 100% | 2.2 MiB/s | 61.1 KiB | 00m00s [179/189] rpm-plugin-selinux-0:6.1.0-1. 100% | 5.8 MiB/s | 17.8 KiB | 00m00s [180/189] selinux-policy-0:45.15-1.fc46 100% | 7.5 MiB/s | 38.5 KiB | 00m00s [181/189] policycoreutils-0:3.11-2.fc45 100% | 18.3 MiB/s | 263.0 KiB | 00m00s [182/189] libselinux-utils-0:3.11-4.fc4 100% | 9.6 MiB/s | 127.4 KiB | 00m00s [183/189] libcbor-0:0.14.0-3.fc45.ppc64 100% | 7.4 MiB/s | 37.9 KiB | 00m00s [184/189] libbrotli-0:1.2.0-6.fc45.ppc6 100% | 48.0 MiB/s | 392.9 KiB | 00m00s [185/189] libnghttp2-0:1.69.0-5.fc45.pp 100% | 27.1 MiB/s | 83.2 KiB | 00m00s [186/189] selinux-policy-targeted-0:45. 100% | 80.2 MiB/s | 6.8 MiB | 00m00s [187/189] libfido2-0:1.17.0-5.fc45.ppc6 100% | 1.6 MiB/s | 107.3 KiB | 00m00s [188/189] keyutils-libs-0:1.6.3-8.fc45. 100% | 691.8 KiB/s | 31.8 KiB | 00m00s [189/189] libcom_err-0:1.47.4-2.fc45.pp 100% | 6.5 MiB/s | 26.8 KiB | 00m00s -------------------------------------------------------------------------------- [189/189] Total 100% | 48.6 MiB/s | 76.0 MiB | 00m02s Running transaction Importing OpenPGP key 0x91211FCE: UserID : "Fedora (46) " Fingerprint: D924B10D3E810DABDD8B56B596E7E91491211FCE From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-46-primary The key was successfully imported. Importing OpenPGP key 0x91211FCE: UserID : "Fedora (46) " Fingerprint: D924B10D3E810DABDD8B56B596E7E91491211FCE From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-46-primary The key was successfully imported. Importing OpenPGP key 0xF577861E: UserID : "Fedora (45) " Fingerprint: 4F50A6114CD5C6976A7F1179655A4B02F577861E From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-45-primary The key was successfully imported. Importing OpenPGP key 0x9488FB64: UserID : "Fedora (47) " Fingerprint: B2E766FA50CA6FA2D5ED06FC09D879E09488FB64 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-47-primary The key was successfully imported. [ 1/191] Verify package files 100% | 148.0 B/s | 189.0 B | 00m01s >>> Running %pretrans scriptlet: filesystem-0:3.18-59.fc45.ppc64le >>> Finished %pretrans scriptlet: filesystem-0:3.18-59.fc45.ppc64le >>> [RPM] /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root/var/cache/dnf/copr_base-bb8f6c99d12f7709/packages/bash-5.3.15-2.fc45.ppc64le.rpm: Header OpenPGP V4 RSA/SHA256 signature, key ID 5291f7fa5c4b3009: NOKEY >>> [RPM] failed to open /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root/etc/group for id/name lookup: No such file or directory [ 2/191] Prepare transaction 100% | 780.0 B/s | 189.0 B | 00m00s [ 3/191] Installing libgcc-0:16.2.1-2. 100% | 70.3 MiB/s | 288.1 KiB | 00m00s [ 4/191] Installing redhat-systemd-pre 100% | 1.4 MiB/s | 1.5 KiB | 00m00s [ 5/191] Installing redhat-systemd-pre 100% | 8.8 MiB/s | 18.1 KiB | 00m00s [ 6/191] Installing libssh-config-0:0. 100% | 796.9 KiB/s | 816.0 B | 00m00s [ 7/191] Installing publicsuffix-list- 100% | 35.2 MiB/s | 72.0 KiB | 00m00s [ 8/191] Installing fedora-release-ide 100% | 449.2 KiB/s | 920.0 B | 00m00s [ 9/191] Installing fedora-gpg-keys-0: 100% | 9.9 MiB/s | 181.7 KiB | 00m00s [ 10/191] Installing fedora-repos-rawhi 100% | 2.4 MiB/s | 2.5 KiB | 00m00s [ 11/191] Installing fedora-repos-0:46- 100% | 5.8 MiB/s | 5.9 KiB | 00m00s [ 12/191] Installing fedora-release-com 100% | 2.6 MiB/s | 8.0 KiB | 00m00s [ 13/191] Installing fedora-release-0:4 100% | 10.1 KiB/s | 124.0 B | 00m00s >>> Running sysusers scriptlet: setup-0:2.15.1-2.fc45.noarch >>> Finished sysusers scriptlet: setup-0:2.15.1-2.fc45.noarch >>> Scriptlet output: >>> Creating group 'adm' with GID 4. >>> Creating group 'audio' with GID 63. >>> Creating group 'cdrom' with GID 11. >>> Creating group 'clock' with GID 103. >>> Creating group 'dialout' with GID 18. >>> Creating group 'disk' with GID 6. >>> Creating group 'floppy' with GID 19. >>> Creating group 'ftp' with GID 50. >>> Creating group 'games' with GID 20. >>> Creating group 'input' with GID 104. >>> Creating group 'kmem' with GID 9. >>> Creating group 'kvm' with GID 36. >>> Creating group 'lock' with GID 54. >>> Creating group 'lp' with GID 7. >>> Creating group 'mail' with GID 12. >>> Creating group 'man' with GID 15. >>> Creating group 'mem' with GID 8. >>> Creating group 'nobody' with GID 65534. >>> Creating group 'render' with GID 105. >>> Creating group 'root' with GID 0. >>> Creating group 'sgx' with GID 106. >>> Creating group 'sys' with GID 3. >>> Creating group 'tape' with GID 33. >>> Creating group 'tty' with GID 5. >>> Creating group 'users' with GID 100. >>> Creating group 'utmp' with GID 22. >>> Creating group 'video' with GID 39. >>> Creating group 'wheel' with GID 10. >>> Creating user 'adm' (adm) with UID 3 and GID 4. >>> Creating group 'bin' with GID 1. >>> Creating user 'bin' (bin) with UID 1 and GID 1. >>> Creating group 'daemon' with GID 2. >>> Creating user 'daemon' (daemon) with UID 2 and GID 2. >>> Creating user 'ftp' (FTP User) with UID 14 and GID 50. >>> Creating user 'games' (games) with UID 12 and GID 100. >>> Creating user 'halt' (halt) with UID 7 and GID 0. >>> Creating user 'lp' (lp) with UID 4 and GID 7. >>> Creating user 'mail' (mail) with UID 8 and GID 12. >>> Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534. >>> Creating user 'operator' (operator) with UID 11 and GID 0. >>> Creating user 'root' (Super User) with UID 0 and GID 0. >>> Creating user 'shutdown' (shutdown) with UID 6 and GID 0. >>> Creating user 'sync' (sync) with UID 5 and GID 0. >>> [ 14/191] Installing setup-0:2.15.1-2.f 100% | 10.5 MiB/s | 731.3 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 15/191] Installing filesystem-0:3.18- 100% | 585.6 KiB/s | 253.6 KiB | 00m00s [ 16/191] Installing pcre2-syntax-0:10. 100% | 55.5 MiB/s | 284.3 KiB | 00m00s [ 17/191] Installing pkgconf-m4-0:2.5.1 100% | 14.4 MiB/s | 14.7 KiB | 00m00s [ 18/191] Installing gnulib-l10n-0:2024 100% | 46.2 MiB/s | 661.9 KiB | 00m00s [ 19/191] Installing coreutils-common-0 100% | 97.8 MiB/s | 11.0 MiB | 00m00s [ 20/191] Installing ncurses-base-0:6.6 100% | 14.5 MiB/s | 355.3 KiB | 00m00s [ 21/191] Installing glibc-common-0:2.4 100% | 19.7 MiB/s | 1.5 MiB | 00m00s [ 22/191] Installing glibc-gconv-extra- 100% | 116.2 MiB/s | 18.6 MiB | 00m00s [ 23/191] Installing glibc-0:2.44.9000- 100% | 70.6 MiB/s | 12.2 MiB | 00m00s [ 24/191] Installing ncurses-libs-0:6.6 100% | 93.4 MiB/s | 1.5 MiB | 00m00s [ 25/191] Installing bash-0:5.3.15-2.fc 100% | 69.3 MiB/s | 8.8 MiB | 00m00s [ 26/191] Installing glibc-minimal-lang 100% | 121.1 KiB/s | 124.0 B | 00m00s [ 27/191] Installing zlib-ng-compat-0:2 100% | 64.5 MiB/s | 198.1 KiB | 00m00s [ 28/191] Installing bzip2-libs-0:1.0.8 100% | 44.8 MiB/s | 137.5 KiB | 00m00s [ 29/191] Installing libgpg-error-0:1.6 100% | 15.1 MiB/s | 1.0 MiB | 00m00s [ 30/191] Installing libstdc++-0:16.2.1 100% | 117.3 MiB/s | 4.1 MiB | 00m00s [ 31/191] Installing libzstd-0:1.5.7-6. 100% | 93.4 MiB/s | 1.0 MiB | 00m00s [ 32/191] Installing elfutils-libelf-0: 100% | 108.6 MiB/s | 1.5 MiB | 00m00s [ 33/191] Installing libgcrypt-0:1.12.3 100% | 98.6 MiB/s | 1.6 MiB | 00m00s [ 34/191] Installing libassuan-0:2.5.7- 100% | 53.2 MiB/s | 217.8 KiB | 00m00s [ 35/191] Installing readline-0:8.3-6.f 100% | 87.8 MiB/s | 629.5 KiB | 00m00s [ 36/191] Installing gmp-1:6.3.0-6.fc45 100% | 85.5 MiB/s | 788.3 KiB | 00m00s [ 37/191] Installing libacl-0:2.4.0-2.f 100% | 33.4 MiB/s | 68.4 KiB | 00m00s [ 38/191] Installing systemd-libs-0:261 100% | 113.1 MiB/s | 3.3 MiB | 00m00s [ 39/191] Installing libuuid-0:2.42.2-3 100% | 34.3 MiB/s | 70.3 KiB | 00m00s [ 40/191] Installing xz-libs-1:5.8.3-2. 100% | 65.0 MiB/s | 266.3 KiB | 00m00s [ 41/191] Installing sqlite-libs-0:3.53 100% | 100.3 MiB/s | 2.0 MiB | 00m00s [ 42/191] Installing popt-0:1.19-11.fc4 100% | 16.4 MiB/s | 151.0 KiB | 00m00s [ 43/191] Installing npth-0:1.8-5.fc45. 100% | 45.9 MiB/s | 94.1 KiB | 00m00s [ 44/191] Installing elfutils-libs-0:0. 100% | 85.6 MiB/s | 876.4 KiB | 00m00s [ 45/191] Installing libblkid-0:2.42.2- 100% | 69.4 MiB/s | 355.5 KiB | 00m00s [ 46/191] Installing libsepol-0:3.11-2. 100% | 94.7 MiB/s | 1.0 MiB | 00m00s [ 47/191] Installing gnupg2-gpgconf-0:2 100% | 4.7 MiB/s | 323.6 KiB | 00m00s [ 48/191] Installing crypto-policies-0: 100% | 8.7 MiB/s | 159.5 KiB | 00m00s [ 49/191] Installing libxcrypt-0:4.5.2- 100% | 55.3 MiB/s | 339.6 KiB | 00m00s [ 50/191] Installing pcre2-0:10.47-1.fc 100% | 98.4 MiB/s | 906.5 KiB | 00m00s [ 51/191] Installing libselinux-0:3.11- 100% | 64.5 MiB/s | 330.4 KiB | 00m00s [ 52/191] Installing grep-0:3.12-4.fc45 100% | 14.4 MiB/s | 1.0 MiB | 00m00s [ 53/191] Installing sed-0:4.10-2.fc45. 100% | 12.1 MiB/s | 950.8 KiB | 00m00s [ 54/191] Installing findutils-1:4.11.0 100% | 25.5 MiB/s | 2.1 MiB | 00m00s [ 55/191] Installing libtasn1-0:4.21.0- 100% | 54.2 MiB/s | 222.2 KiB | 00m00s [ 56/191] Installing libunistring-0:1.1 100% | 110.1 MiB/s | 1.9 MiB | 00m00s [ 57/191] Installing libidn2-0:2.3.8-4. 100% | 46.1 MiB/s | 566.3 KiB | 00m00s [ 58/191] Installing xz-1:5.8.3-2.fc45. 100% | 19.0 MiB/s | 1.5 MiB | 00m00s [ 59/191] Installing libmount-0:2.42.2- 100% | 76.6 MiB/s | 549.3 KiB | 00m00s [ 60/191] Installing gnupg2-verify-0:2. 100% | 7.2 MiB/s | 429.5 KiB | 00m00s [ 61/191] Installing mpfr-0:4.2.2-4.fc4 100% | 74.5 MiB/s | 915.1 KiB | 00m00s [ 62/191] Installing gawk-0:5.4.1-1.fc4 100% | 36.5 MiB/s | 3.2 MiB | 00m00s [ 63/191] Installing dwz-0:0.17-3.fc45. 100% | 6.3 MiB/s | 388.0 KiB | 00m00s [ 64/191] Installing libksba-0:1.8.1-1. 100% | 65.7 MiB/s | 538.3 KiB | 00m00s [ 65/191] Installing unzip-0:6.0-71.fc4 100% | 8.5 MiB/s | 536.9 KiB | 00m00s [ 66/191] Installing file-libs-0:5.47-3 100% | 170.4 MiB/s | 12.3 MiB | 00m00s [ 67/191] Installing file-0:5.47-3.fc45 100% | 2.4 MiB/s | 142.5 KiB | 00m00s [ 68/191] Installing diffutils-0:3.12-6 100% | 21.9 MiB/s | 1.7 MiB | 00m00s [ 69/191] Installing libsmartcols-0:2.4 100% | 56.7 MiB/s | 290.5 KiB | 00m00s [ 70/191] Installing lua-libs-0:5.5.1-2 100% | 64.4 MiB/s | 395.4 KiB | 00m00s [ 71/191] Installing libcap-ng-0:0.9.5- 100% | 39.6 MiB/s | 162.0 KiB | 00m00s [ 72/191] Installing audit-libs-0:4.2.1 100% | 77.1 MiB/s | 552.8 KiB | 00m00s [ 73/191] Installing libsemanage-0:3.11 100% | 69.3 MiB/s | 425.6 KiB | 00m00s [ 74/191] Installing libeconf-0:0.7.9-4 100% | 26.9 MiB/s | 82.6 KiB | 00m00s [ 75/191] Installing pam-libs-0:1.7.2-4 100% | 56.3 MiB/s | 288.2 KiB | 00m00s [ 76/191] Installing libcap-0:2.78-2.fc 100% | 8.1 MiB/s | 511.9 KiB | 00m00s [ 77/191] Installing libattr-0:2.6.0-2. 100% | 22.4 MiB/s | 68.8 KiB | 00m00s [ 78/191] Installing json-c-0:0.18-9.fc 100% | 45.4 MiB/s | 139.6 KiB | 00m00s [ 79/191] Installing libffi-0:3.5.2-3.f 100% | 68.1 MiB/s | 348.9 KiB | 00m00s [ 80/191] Installing p11-kit-0:0.26.5-1 100% | 35.5 MiB/s | 3.3 MiB | 00m00s [ 81/191] Installing alternatives-0:1.3 100% | 1.6 MiB/s | 91.5 KiB | 00m00s [ 82/191] Installing p11-kit-trust-0:0. 100% | 8.6 MiB/s | 595.7 KiB | 00m00s [ 83/191] Installing ngtcp2-0:1.22.1-3. 100% | 66.2 MiB/s | 406.6 KiB | 00m00s [ 84/191] Installing liblastlog2-0:2.42 100% | 13.6 MiB/s | 139.3 KiB | 00m00s [ 85/191] Installing util-linux-core-0: 100% | 30.5 MiB/s | 2.7 MiB | 00m00s [ 86/191] Installing zip-0:3.0-46.fc45. 100% | 13.2 MiB/s | 893.1 KiB | 00m00s [ 87/191] Installing gnupg2-keyboxd-0:2 100% | 20.8 MiB/s | 234.4 KiB | 00m00s [ 88/191] Installing libpsl-0:0.23.1-1. 100% | 32.5 MiB/s | 133.2 KiB | 00m00s [ 89/191] Installing tar-2:1.35-9.fc45. 100% | 36.4 MiB/s | 3.1 MiB | 00m00s [ 90/191] Installing linkdupes-0:0.7.3- 100% | 12.8 MiB/s | 839.8 KiB | 00m00s [ 91/191] Installing libselinux-utils-0 100% | 18.8 MiB/s | 1.4 MiB | 00m00s [ 92/191] Installing libfdisk-0:2.42.2- 100% | 67.5 MiB/s | 483.9 KiB | 00m00s [ 93/191] Installing fips-provider-0:1. 100% | 120.3 MiB/s | 4.7 MiB | 00m00s [ 94/191] Installing openssl-libs-1:4.0 100% | 116.8 MiB/s | 7.1 MiB | 00m00s [ 95/191] Installing coreutils-0:9.11-6 100% | 65.7 MiB/s | 9.7 MiB | 00m00s [ 96/191] Installing ca-certificates-0: 100% | 468.2 KiB/s | 2.4 MiB | 00m05s [ 97/191] Installing gzip-0:1.14-4.fc45 100% | 5.0 MiB/s | 443.0 KiB | 00m00s [ 98/191] Installing rpm-sequoia-0:1.10 100% | 88.1 MiB/s | 4.8 MiB | 00m00s [ 99/191] Installing libfsverity-0:1.7- 100% | 16.9 MiB/s | 69.0 KiB | 00m00s [100/191] Installing libevent-0:2.1.12- 100% | 70.5 MiB/s | 1.3 MiB | 00m00s [101/191] Installing ngtcp2-crypto-ossl 100% | 16.6 MiB/s | 68.0 KiB | 00m00s [102/191] Installing libxml2-0:2.13.9-4 100% | 21.3 MiB/s | 2.3 MiB | 00m00s [103/191] Installing libusb1-0:1.0.30-2 100% | 10.9 MiB/s | 245.2 KiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.2.0-1.fc45.ppc64le >>> Finished sysusers scriptlet: tpm2-tss-0:4.2.0-1.fc45.ppc64le >>> Scriptlet output: >>> Creating group 'tss' with GID 59. >>> Creating user 'tss' (Account used for TPM access) with UID 59 and GID 59. >>> [104/191] Installing tpm2-tss-0:4.2.0-1 100% | 61.9 MiB/s | 2.4 MiB | 00m00s [105/191] Installing gnupg2-gpg-agent-0 100% | 8.7 MiB/s | 978.1 KiB | 00m00s [106/191] Installing ima-evm-utils-libs 100% | 18.3 MiB/s | 93.5 KiB | 00m00s [107/191] Installing nettle-0:4.0-5.fc4 100% | 63.0 MiB/s | 968.2 KiB | 00m00s [108/191] Installing gnutls-0:3.8.13-3. 100% | 81.3 MiB/s | 4.1 MiB | 00m00s [109/191] Installing zstd-0:1.5.7-6.fc4 100% | 6.2 MiB/s | 563.1 KiB | 00m00s [110/191] Installing bzip2-0:1.0.8-24.f 100% | 2.0 MiB/s | 175.4 KiB | 00m00s [111/191] Installing add-determinism-0: 100% | 20.3 MiB/s | 2.3 MiB | 00m00s [112/191] Installing filesystem-srpm-ma 100% | 9.5 MiB/s | 38.9 KiB | 00m00s [113/191] Installing ed-0:1.22.6-1.fc46 100% | 2.6 MiB/s | 225.1 KiB | 00m00s [114/191] Installing patch-0:2.8-5.fc45 100% | 2.9 MiB/s | 263.8 KiB | 00m00s [115/191] Installing cpio-0:2.15-10.fc4 100% | 12.1 MiB/s | 1.2 MiB | 00m00s [116/191] Installing librtas-0:2.0.7-2. 100% | 11.7 MiB/s | 322.5 KiB | 00m00s [117/191] Installing util-linux-0:2.42. 100% | 32.2 MiB/s | 7.1 MiB | 00m00s [118/191] Installing policycoreutils-0: 100% | 10.8 MiB/s | 1.5 MiB | 00m00s [119/191] Installing selinux-policy-0:4 100% | 664.1 KiB/s | 34.5 KiB | 00m00s [120/191] Installing selinux-policy-tar 100% | 31.7 MiB/s | 15.1 MiB | 00m00s [121/191] Installing build-reproducibil 100% | 505.2 KiB/s | 1.5 KiB | 00m00s [122/191] Installing libgomp-0:16.2.1-2 100% | 26.8 MiB/s | 658.4 KiB | 00m00s [123/191] Installing libtool-ltdl-0:2.5 100% | 23.2 MiB/s | 94.9 KiB | 00m00s [124/191] Installing lz4-libs-0:1.10.0- 100% | 42.6 MiB/s | 261.9 KiB | 00m00s [125/191] Installing libarchive-0:3.8.9 100% | 63.4 MiB/s | 1.3 MiB | 00m00s [126/191] Installing gdbm-libs-1:1.23-1 100% | 32.8 MiB/s | 235.1 KiB | 00m00s [127/191] Installing cyrus-sasl-lib-0:2 100% | 23.9 MiB/s | 2.9 MiB | 00m00s [128/191] Installing openldap-0:2.6.14- 100% | 43.8 MiB/s | 896.6 KiB | 00m00s [129/191] Installing gnupg2-dirmngr-0:2 100% | 7.7 MiB/s | 840.6 KiB | 00m00s [130/191] Installing gnupg2-0:2.4.9-18. 100% | 39.5 MiB/s | 6.8 MiB | 00m00s [131/191] Installing gpgverify-0:2.2-5. 100% | 2.3 MiB/s | 9.4 KiB | 00m00s [132/191] Installing jansson-0:2.14-5.f 100% | 25.8 MiB/s | 158.3 KiB | 00m00s [133/191] Installing libpkgconf-0:2.5.1 100% | 26.3 MiB/s | 134.9 KiB | 00m00s [134/191] Installing pkgconf-0:2.5.1-2. 100% | 1.3 MiB/s | 117.2 KiB | 00m00s [135/191] Installing pkgconf-pkg-config 100% | 21.1 KiB/s | 1.8 KiB | 00m00s [136/191] Installing systemd-standalone 100% | 11.5 MiB/s | 1.1 MiB | 00m00s [137/191] Installing rpm-libs-0:6.1.0-1 100% | 64.3 MiB/s | 1.4 MiB | 00m00s [138/191] Installing rpm-sign-libs-0:6. 100% | 16.7 MiB/s | 68.3 KiB | 00m00s [139/191] Installing rpm-build-libs-0:6 100% | 40.1 MiB/s | 328.7 KiB | 00m00s [140/191] Installing xxhash-libs-0:0.8. 100% | 17.0 MiB/s | 86.9 KiB | 00m00s [141/191] Installing libnghttp3-0:1.18. 100% | 33.9 MiB/s | 208.1 KiB | 00m00s [142/191] Installing libverto-0:0.3.2-1 100% | 13.8 MiB/s | 70.8 KiB | 00m00s [143/191] Installing libcbor-0:0.14.0-3 100% | 27.5 MiB/s | 140.9 KiB | 00m00s [144/191] Installing libfido2-0:1.17.0- 100% | 42.3 MiB/s | 346.7 KiB | 00m00s [145/191] Installing libbrotli-0:1.2.0- 100% | 56.4 MiB/s | 1.0 MiB | 00m00s [146/191] Installing libnghttp2-0:1.69. 100% | 32.4 MiB/s | 198.9 KiB | 00m00s [147/191] Installing keyutils-libs-0:1. 100% | 19.4 MiB/s | 99.1 KiB | 00m00s [148/191] Installing libcom_err-0:1.47. 100% | 21.9 MiB/s | 112.0 KiB | 00m00s [149/191] Installing krb5-libs-0:1.22.2 100% | 66.0 MiB/s | 3.0 MiB | 00m00s [150/191] Installing libssh-0:0.12.2-1. 100% | 55.9 MiB/s | 915.6 KiB | 00m00s [151/191] Installing libcurl-0:8.22.0~r 100% | 66.8 MiB/s | 1.3 MiB | 00m00s [152/191] Installing elfutils-debuginfo 100% | 1.6 MiB/s | 145.7 KiB | 00m00s [153/191] Installing binutils-0:2.47-1. 100% | 70.4 MiB/s | 33.8 MiB | 00m00s [154/191] Installing elfutils-0:0.196-1 100% | 27.4 MiB/s | 3.5 MiB | 00m00s [155/191] Installing gdb-minimal-0:17.2 100% | 60.6 MiB/s | 16.3 MiB | 00m00s [156/191] Installing debugedit-0:5.3-3. 100% | 4.2 MiB/s | 387.8 KiB | 00m00s [157/191] Installing curl-0:8.22.0~rc3- 100% | 4.8 MiB/s | 529.3 KiB | 00m00s [158/191] Installing rpm-0:6.1.0-1.fc46 100% | 15.5 MiB/s | 2.8 MiB | 00m00s [159/191] Installing cmake-srpm-macros- 100% | 261.7 KiB/s | 804.0 B | 00m00s [160/191] Installing efi-srpm-macros-0: 100% | 10.1 MiB/s | 41.3 KiB | 00m00s [161/191] Installing java-srpm-macros-0 100% | 373.7 KiB/s | 1.1 KiB | 00m00s [162/191] Installing lua-srpm-macros-0: 100% | 634.1 KiB/s | 1.9 KiB | 00m00s [163/191] Installing tree-sitter-srpm-m 100% | 2.3 MiB/s | 9.6 KiB | 00m00s [164/191] Installing zig-srpm-macros-0: 100% | 621.1 KiB/s | 1.9 KiB | 00m00s [165/191] Installing rust-srpm-macros-0 100% | 2.1 MiB/s | 6.4 KiB | 00m00s [166/191] Installing qt6-srpm-macros-0: 100% | 365.2 KiB/s | 748.0 B | 00m00s [167/191] Installing qt5-srpm-macros-0: 100% | 378.9 KiB/s | 776.0 B | 00m00s [168/191] Installing perl-srpm-macros-0 100% | 556.6 KiB/s | 1.1 KiB | 00m00s [169/191] Installing package-notes-srpm 100% | 515.6 KiB/s | 2.1 KiB | 00m00s [170/191] Installing openblas-srpm-macr 100% | 191.4 KiB/s | 392.0 B | 00m00s [171/191] Installing ocaml-srpm-macros- 100% | 107.2 KiB/s | 2.1 KiB | 00m00s [172/191] Installing kernel-srpm-macros 100% | 776.0 KiB/s | 2.3 KiB | 00m00s [173/191] Installing gnome-srpm-macros- 100% | 1.3 MiB/s | 4.1 KiB | 00m00s [174/191] Installing gnat-srpm-macros-0 100% | 632.8 KiB/s | 1.3 KiB | 00m00s [175/191] Installing ghc-srpm-macros-0: 100% | 521.5 KiB/s | 1.0 KiB | 00m00s [176/191] Installing gap-srpm-macros-0: 100% | 899.7 KiB/s | 2.7 KiB | 00m00s [177/191] Installing fpc-srpm-macros-0: 100% | 205.1 KiB/s | 420.0 B | 00m00s [178/191] Installing ansible-srpm-macro 100% | 8.8 MiB/s | 36.2 KiB | 00m00s [179/191] Installing redhat-rpm-config- 100% | 14.3 MiB/s | 190.4 KiB | 00m00s [180/191] Installing forge-srpm-macros- 100% | 7.9 MiB/s | 40.3 KiB | 00m00s [181/191] Installing rpm-build-0:6.1.0- 100% | 6.7 MiB/s | 689.8 KiB | 00m00s [182/191] Installing erlang-srpm-macros 100% | 830.7 KiB/s | 2.5 KiB | 00m00s [183/191] Installing pyproject-srpm-mac 100% | 1.3 MiB/s | 4.0 KiB | 00m00s [184/191] Installing fonts-srpm-macros- 100% | 13.9 MiB/s | 57.0 KiB | 00m00s [185/191] Installing go-srpm-macros-0:3 100% | 10.3 MiB/s | 63.0 KiB | 00m00s [186/191] Installing R-srpm-macros-0:1. 100% | 1.4 MiB/s | 4.4 KiB | 00m00s [187/191] Installing python-srpm-macros 100% | 12.9 MiB/s | 52.9 KiB | 00m00s [188/191] Installing rpm-plugin-selinux 100% | 16.8 MiB/s | 68.8 KiB | 00m00s [189/191] Installing which-0:2.25-2.fc4 100% | 1.4 MiB/s | 125.1 KiB | 00m00s [190/191] Installing shadow-utils-2:4.2 100% | 23.6 MiB/s | 4.9 MiB | 00m00s [191/191] Installing info-0:7.3-3.fc45. 100% | 21.2 KiB/s | 488.5 KiB | 00m23s Warning: skipped OpenPGP checks for 29 packages from repository: copr_base Complete! Updating and loading repositories: fedora 100% | 13.9 KiB/s | 5.8 KiB | 00m00s Additional repo copr_tstellar_fedora_c 100% | 5.7 KiB/s | 1.5 KiB | 00m00s Additional repo copr_fedora_llvm_team_ 100% | 5.2 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 5.7 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: fedora-clang-default-cc noarch 0:1-1.fc43 copr_tstellar_fedora_clang_default_cc 17.0 B Installing dependencies: annobin-docs noarch 0:13.28-1.fc45 fedora 99.7 KiB annobin-plugin-gcc ppc64le 0:13.28-1.fc45 fedora 785.3 KiB clang ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 68.3 MiB clang-libs ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 119.7 MiB clang-resource-filesystem ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 15.3 KiB compiler-rt ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 19.9 MiB cpp ppc64le 0:16.2.1-2.fc46 fedora 39.2 MiB expat ppc64le 0:2.8.1-2.fc45 copr_base 371.0 KiB gcc ppc64le 0:16.2.1-2.fc46 fedora 107.3 MiB gcc-c++ ppc64le 0:16.2.1-2.fc46 fedora 43.9 MiB gcc-plugin-annobin ppc64le 0:16.2.1-2.fc46 fedora 132.8 KiB glibc-devel ppc64le 0:2.44.9000-1.fc46 fedora 3.7 MiB kernel-headers ppc64le 0:7.2.0-61.fc46 fedora 7.0 MiB libasan ppc64le 0:16.2.1-2.fc46 fedora 2.2 MiB libatomic ppc64le 0:16.2.1-2.fc46 fedora 77.0 KiB libedit ppc64le 0:3.1-60.20260512cvs.fc45 copr_base 344.9 KiB libmpc ppc64le 0:1.4.1-2.fc45 fedora 281.6 KiB libomp ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 3.6 MiB libstdc++-devel ppc64le 0:16.2.1-2.fc46 fedora 41.1 MiB libubsan ppc64le 0:16.2.1-2.fc46 fedora 668.9 KiB libxcrypt-devel ppc64le 0:4.5.2-4.fc45 fedora 31.0 KiB lld ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 43.9 KiB lld-libs ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 7.0 MiB llvm ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 141.2 MiB llvm-filesystem ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 0.0 B llvm-libs ppc64le 0:24.0.0~pre20260827.g325a853c12648a-28.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827 153.4 MiB make ppc64le 1:4.4.1-13.fc45 fedora 1.9 MiB mpdecimal ppc64le 0:4.0.1-4.fc45 fedora 281.1 KiB python-pip-wheel noarch 0:26.1.2-5.fc46 fedora 1.2 MiB python3 ppc64le 0:3.15.0~rc1-1.fc45 fedora 84.7 KiB python3-libs ppc64le 0:3.15.0~rc1-1.fc45 fedora 50.8 MiB tzdata noarch 0:2026c-1.fc45 fedora 1.2 MiB Transaction Summary: Installing: 33 packages Total size of inbound packages is 206 MiB. Need to download 206 MiB. After this operation, 816 MiB extra will be used (install 816 MiB, remove 0 B). [ 1/33] fedora-clang-default-cc-0:1-1.f 100% | 153.6 KiB/s | 7.4 KiB | 00m00s [ 2/33] gcc-c++-0:16.2.1-2.fc46.ppc64le 100% | 65.8 MiB/s | 15.5 MiB | 00m00s [ 3/33] libstdc++-devel-0:16.2.1-2.fc46 100% | 27.6 MiB/s | 5.9 MiB | 00m00s [ 4/33] clang-0:24.0.0~pre20260827.g325 100% | 11.2 MiB/s | 7.7 MiB | 00m01s [ 5/33] gcc-0:16.2.1-2.fc46.ppc64le 100% | 60.9 MiB/s | 37.9 MiB | 00m01s [ 6/33] clang-libs-0:24.0.0~pre20260827 100% | 21.4 MiB/s | 29.0 MiB | 00m01s [ 7/33] llvm-libs-0:24.0.0~pre20260827. 100% | 23.9 MiB/s | 37.1 MiB | 00m02s [ 8/33] clang-resource-filesystem-0:24. 100% | 33.3 KiB/s | 18.1 KiB | 00m01s [ 9/33] glibc-devel-0:2.44.9000-1.fc46. 100% | 53.2 MiB/s | 708.4 KiB | 00m00s [10/33] libasan-0:16.2.1-2.fc46.ppc64le 100% | 45.0 MiB/s | 553.5 KiB | 00m00s [11/33] libatomic-0:16.2.1-2.fc46.ppc64 100% | 17.9 MiB/s | 55.0 KiB | 00m00s [12/33] libubsan-0:16.2.1-2.fc46.ppc64l 100% | 34.0 MiB/s | 278.9 KiB | 00m00s [13/33] cpp-0:16.2.1-2.fc46.ppc64le 100% | 72.7 MiB/s | 12.8 MiB | 00m00s [14/33] libxcrypt-devel-0:4.5.2-4.fc45. 100% | 9.9 MiB/s | 30.3 KiB | 00m00s [15/33] kernel-headers-0:7.2.0-61.fc46. 100% | 15.1 MiB/s | 1.7 MiB | 00m00s [16/33] llvm-filesystem-0:24.0.0~pre202 100% | 24.7 KiB/s | 12.2 KiB | 00m00s [17/33] libomp-0:24.0.0~pre20260827.g32 100% | 3.1 MiB/s | 920.3 KiB | 00m00s [18/33] lld-0:24.0.0~pre20260827.g325a8 100% | 112.3 KiB/s | 38.3 KiB | 00m00s [19/33] compiler-rt-0:24.0.0~pre2026082 100% | 6.2 MiB/s | 1.7 MiB | 00m00s [20/33] libmpc-0:1.4.1-2.fc45.ppc64le 100% | 19.2 MiB/s | 98.3 KiB | 00m00s [21/33] make-1:4.4.1-13.fc45.ppc64le 100% | 58.8 MiB/s | 601.6 KiB | 00m00s [22/33] lld-libs-0:24.0.0~pre20260827.g 100% | 5.3 MiB/s | 1.8 MiB | 00m00s [23/33] python3-0:3.15.0~rc1-1.fc45.ppc 100% | 6.6 MiB/s | 27.1 KiB | 00m00s [24/33] python3-libs-0:3.15.0~rc1-1.fc4 100% | 76.9 MiB/s | 11.1 MiB | 00m00s [25/33] libedit-0:3.1-60.20260512cvs.fc 100% | 484.3 KiB/s | 114.8 KiB | 00m00s [26/33] python-pip-wheel-0:26.1.2-5.fc4 100% | 51.1 MiB/s | 1.2 MiB | 00m00s [27/33] mpdecimal-0:4.0.1-4.fc45.ppc64l 100% | 18.0 MiB/s | 110.9 KiB | 00m00s [28/33] tzdata-0:2026c-1.fc45.noarch 100% | 43.5 MiB/s | 712.0 KiB | 00m00s [29/33] annobin-plugin-gcc-0:13.28-1.fc 100% | 52.4 MiB/s | 697.4 KiB | 00m00s [30/33] gcc-plugin-annobin-0:16.2.1-2.f 100% | 15.0 MiB/s | 61.3 KiB | 00m00s [31/33] annobin-docs-0:13.28-1.fc45.noa 100% | 21.3 MiB/s | 87.3 KiB | 00m00s [32/33] expat-0:2.8.1-2.fc45.ppc64le 100% | 1.6 MiB/s | 131.7 KiB | 00m00s [33/33] llvm-0:24.0.0~pre20260827.g325a 100% | 24.5 MiB/s | 37.2 MiB | 00m02s -------------------------------------------------------------------------------- [33/33] Total 100% | 56.7 MiB/s | 205.8 MiB | 00m04s Running transaction [ 1/35] Verify package files 100% | 7.0 B/s | 33.0 B | 00m05s [ 2/35] Prepare transaction 100% | 103.0 B/s | 33.0 B | 00m00s [ 3/35] Installing libmpc-0:1.4.1-2.fc4 100% | 30.7 MiB/s | 283.3 KiB | 00m00s [ 4/35] Installing clang-resource-files 100% | 1.4 MiB/s | 16.7 KiB | 00m00s [ 5/35] Installing libstdc++-devel-0:16 100% | 80.2 MiB/s | 41.3 MiB | 00m01s [ 6/35] Installing compiler-rt-0:24.0.0 100% | 99.5 MiB/s | 19.9 MiB | 00m00s [ 7/35] Installing cpp-0:16.2.1-2.fc46. 100% | 75.2 MiB/s | 39.2 MiB | 00m01s [ 8/35] Installing annobin-docs-0:13.28 100% | 7.0 MiB/s | 100.8 KiB | 00m00s [ 9/35] Installing tzdata-0:2026c-1.fc4 100% | 10.6 MiB/s | 1.5 MiB | 00m00s [10/35] Installing mpdecimal-0:4.0.1-4. 100% | 55.2 MiB/s | 282.7 KiB | 00m00s [11/35] Installing expat-0:2.8.1-2.fc45 100% | 5.7 MiB/s | 373.1 KiB | 00m00s [12/35] Installing python-pip-wheel-0:2 100% | 54.2 MiB/s | 1.2 MiB | 00m00s [13/35] Installing python3-libs-0:3.15. 100% | 83.3 MiB/s | 51.2 MiB | 00m01s [14/35] Installing python3-0:3.15.0~rc1 100% | 1.4 MiB/s | 86.4 KiB | 00m00s [15/35] Installing libedit-0:3.1-60.202 100% | 56.4 MiB/s | 346.6 KiB | 00m00s [16/35] Installing make-1:4.4.1-13.fc45 100% | 22.5 MiB/s | 1.9 MiB | 00m00s [17/35] Installing kernel-headers-0:7.2 100% | 39.0 MiB/s | 7.1 MiB | 00m00s [18/35] Installing glibc-devel-0:2.44.9 100% | 44.8 MiB/s | 3.8 MiB | 00m00s [19/35] Installing libxcrypt-devel-0:4. 100% | 8.1 MiB/s | 33.3 KiB | 00m00s [20/35] Installing libubsan-0:16.2.1-2. 100% | 72.7 MiB/s | 669.7 KiB | 00m00s [21/35] Installing libatomic-0:16.2.1-2 100% | 25.4 MiB/s | 78.2 KiB | 00m00s [22/35] Installing libasan-0:16.2.1-2.f 100% | 103.2 MiB/s | 2.2 MiB | 00m00s [23/35] Installing gcc-0:16.2.1-2.fc46. 100% | 102.4 MiB/s | 107.3 MiB | 00m01s [24/35] Installing gcc-c++-0:16.2.1-2.f 100% | 91.8 MiB/s | 44.0 MiB | 00m00s [25/35] Installing llvm-filesystem-0:24 100% | 531.2 KiB/s | 1.1 KiB | 00m00s [26/35] Installing llvm-libs-0:24.0.0~p 100% | 114.7 MiB/s | 153.4 MiB | 00m01s [27/35] Installing clang-libs-0:24.0.0~ 100% | 113.1 MiB/s | 119.7 MiB | 00m01s [28/35] Installing clang-0:24.0.0~pre20 100% | 123.2 MiB/s | 68.3 MiB | 00m01s [29/35] Installing llvm-0:24.0.0~pre202 100% | 102.5 MiB/s | 141.3 MiB | 00m01s [30/35] Installing libomp-0:24.0.0~pre2 100% | 104.3 MiB/s | 3.7 MiB | 00m00s [31/35] Installing lld-libs-0:24.0.0~pr 100% | 111.5 MiB/s | 7.0 MiB | 00m00s [32/35] Installing lld-0:24.0.0~pre2026 100% | 624.3 KiB/s | 46.8 KiB | 00m00s [33/35] Installing fedora-clang-default 100% | 140.6 KiB/s | 288.0 B | 00m00s [34/35] Installing annobin-plugin-gcc-0 100% | 20.8 MiB/s | 787.0 KiB | 00m00s [35/35] Installing gcc-plugin-annobin-0 100% | 369.4 KiB/s | 134.5 KiB | 00m00s Warning: skipped OpenPGP checks for 13 packages from repositories: copr_base, copr_fedora_llvm_team_llvm_snapshots_big_merge_20260827, copr_tstellar_fedora_clang_default_cc Complete! Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: R-srpm-macros-1.3.7-3.fc45.noarch add-determinism-0.7.3-3.fc45.ppc64le alternatives-1.33-6.fc45.ppc64le annobin-docs-13.28-1.fc45.noarch annobin-plugin-gcc-13.28-1.fc45.ppc64le ansible-srpm-macros-1-22.fc45.noarch audit-libs-4.2.1-2.fc45.ppc64le bash-5.3.15-2.fc45.ppc64le binutils-2.47-1.fc45.ppc64le build-reproducibility-srpm-macros-0.7.3-3.fc45.noarch bzip2-1.0.8-24.fc45.ppc64le bzip2-libs-1.0.8-24.fc45.ppc64le ca-certificates-2025.2.80_v9.0.304-9.fc45.noarch clang-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le clang-libs-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le clang-resource-filesystem-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le cmake-srpm-macros-4.3.0-5.fc45.noarch compiler-rt-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le coreutils-9.11-6.fc45.ppc64le coreutils-common-9.11-6.fc45.ppc64le cpio-2.15-10.fc45.ppc64le cpp-16.2.1-2.fc46.ppc64le crypto-policies-20260713-2.gitc42da77.fc45.noarch curl-8.22.0~rc3-1.fc46.ppc64le cyrus-sasl-lib-2.1.28-37.fc45.ppc64le debugedit-5.3-3.fc45.ppc64le diffutils-3.12-6.fc45.ppc64le dwz-0.17-3.fc45.ppc64le ed-1.22.6-1.fc46.ppc64le efi-srpm-macros-6-9.fc45.noarch elfutils-0.196-1.fc46.ppc64le elfutils-debuginfod-client-0.196-1.fc46.ppc64le elfutils-libelf-0.196-1.fc46.ppc64le elfutils-libs-0.196-1.fc46.ppc64le erlang-srpm-macros-0.3.11-2.fc45.noarch expat-2.8.1-2.fc45.ppc64le fedora-clang-default-cc-1-1.fc43.noarch fedora-gpg-keys-46-0.3.noarch fedora-release-46-0.1.noarch fedora-release-common-46-0.1.noarch fedora-release-identity-basic-46-0.1.noarch fedora-repos-46-0.3.noarch fedora-repos-rawhide-46-0.3.noarch file-5.47-3.fc45.ppc64le file-libs-5.47-3.fc45.ppc64le filesystem-3.18-59.fc45.ppc64le filesystem-srpm-macros-3.18-59.fc45.noarch findutils-4.11.0-2.fc45.ppc64le fips-provider-1.5.2-3.fc45.ppc64le fonts-srpm-macros-5.0.0-4.fc45.noarch forge-srpm-macros-0.4.0-5.fc45.noarch fpc-srpm-macros-1.3-17.fc45.noarch gap-srpm-macros-2-3.fc45.noarch gawk-5.4.1-1.fc45.ppc64le gcc-16.2.1-2.fc46.ppc64le gcc-c++-16.2.1-2.fc46.ppc64le gcc-plugin-annobin-16.2.1-2.fc46.ppc64le gdb-minimal-17.2-4.fc45.ppc64le gdbm-libs-1.23-12.fc45.ppc64le ghc-srpm-macros-1.10-2.fc45.noarch glibc-2.44.9000-1.fc46.ppc64le glibc-common-2.44.9000-1.fc46.ppc64le glibc-devel-2.44.9000-1.fc46.ppc64le glibc-gconv-extra-2.44.9000-1.fc46.ppc64le glibc-minimal-langpack-2.44.9000-1.fc46.ppc64le gmp-6.3.0-6.fc45.ppc64le gnat-srpm-macros-7-3.fc45.noarch gnome-srpm-macros-1.0-2.fc45.noarch gnulib-l10n-20241231-4.fc45.noarch gnupg2-2.4.9-18.fc45.ppc64le gnupg2-dirmngr-2.4.9-18.fc45.ppc64le gnupg2-gpg-agent-2.4.9-18.fc45.ppc64le gnupg2-gpgconf-2.4.9-18.fc45.ppc64le gnupg2-keyboxd-2.4.9-18.fc45.ppc64le gnupg2-verify-2.4.9-18.fc45.ppc64le gnutls-3.8.13-3.fc45.ppc64le go-srpm-macros-3.8.0-3.fc45.noarch gpg-pubkey-4f50a6114cd5c6976a7f1179655a4b02f577861e-6888bc98 gpg-pubkey-b2e766fa50ca6fa2d5ed06fc09d879e09488fb64-6a6b46b4 gpg-pubkey-d924b10d3e810dabdd8b56b596e7e91491211fce-697c9899 gpgverify-2.2-5.fc45.noarch grep-3.12-4.fc45.ppc64le gzip-1.14-4.fc45.ppc64le ima-evm-utils-libs-1.6.2-12.fc45.ppc64le info-7.3-3.fc45.ppc64le jansson-2.14-5.fc45.ppc64le java-srpm-macros-1-9.fc45.noarch json-c-0.18-9.fc45.ppc64le kernel-headers-7.2.0-61.fc46.ppc64le kernel-srpm-macros-1.0-30.fc45.noarch keyutils-libs-1.6.3-8.fc45.ppc64le krb5-libs-1.22.2-9.fc45.ppc64le libacl-2.4.0-2.fc45.ppc64le libarchive-3.8.9-1.fc46.ppc64le libasan-16.2.1-2.fc46.ppc64le libassuan-2.5.7-6.fc45.ppc64le libatomic-16.2.1-2.fc46.ppc64le libattr-2.6.0-2.fc45.ppc64le libblkid-2.42.2-3.fc45.ppc64le libbrotli-1.2.0-6.fc45.ppc64le libcap-2.78-2.fc45.ppc64le libcap-ng-0.9.5-1.fc46.ppc64le libcbor-0.14.0-3.fc45.ppc64le libcom_err-1.47.4-2.fc45.ppc64le libcurl-8.22.0~rc3-1.fc46.ppc64le libeconf-0.7.9-4.fc45.ppc64le libedit-3.1-60.20260512cvs.fc45.ppc64le libevent-2.1.12-19.fc45.ppc64le libfdisk-2.42.2-3.fc45.ppc64le libffi-3.5.2-3.fc45.ppc64le libfido2-1.17.0-5.fc45.ppc64le libfsverity-1.7-4.fc45.ppc64le libgcc-16.2.1-2.fc46.ppc64le libgcrypt-1.12.3-1.fc46.ppc64le libgomp-16.2.1-2.fc46.ppc64le libgpg-error-1.61-2.fc45.ppc64le libidn2-2.3.8-4.fc45.ppc64le libksba-1.8.1-1.fc46.ppc64le liblastlog2-2.42.2-3.fc45.ppc64le libmount-2.42.2-3.fc45.ppc64le libmpc-1.4.1-2.fc45.ppc64le libnghttp2-1.69.0-5.fc45.ppc64le libnghttp3-1.18.0-1.fc45.ppc64le libomp-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le libpkgconf-2.5.1-2.fc45.ppc64le libpsl-0.23.1-1.fc45.ppc64le librtas-2.0.7-2.fc45.ppc64le libselinux-3.11-4.fc45.ppc64le libselinux-utils-3.11-4.fc45.ppc64le libsemanage-3.11-3.fc45.ppc64le libsepol-3.11-2.fc45.ppc64le libsmartcols-2.42.2-3.fc45.ppc64le libssh-0.12.2-1.fc45.ppc64le libssh-config-0.12.2-1.fc45.noarch libstdc++-16.2.1-2.fc46.ppc64le libstdc++-devel-16.2.1-2.fc46.ppc64le libtasn1-4.21.0-2.fc45.ppc64le libtool-ltdl-2.5.4-11.fc45.ppc64le libubsan-16.2.1-2.fc46.ppc64le libunistring-1.1-12.fc45.ppc64le libusb1-1.0.30-2.fc45.ppc64le libuuid-2.42.2-3.fc45.ppc64le libverto-0.3.2-13.fc45.ppc64le libxcrypt-4.5.2-4.fc45.ppc64le libxcrypt-devel-4.5.2-4.fc45.ppc64le libxml2-2.13.9-4.fc45.ppc64le libzstd-1.5.7-6.fc45.ppc64le linkdupes-0.7.3-3.fc45.ppc64le lld-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le lld-libs-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le llvm-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le llvm-filesystem-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le llvm-libs-24.0.0~pre20260827.g325a853c12648a-28.fc46.ppc64le lua-libs-5.5.1-2.fc46.ppc64le lua-srpm-macros-1-18.fc45.noarch lz4-libs-1.10.0-5.fc45.ppc64le make-4.4.1-13.fc45.ppc64le mpdecimal-4.0.1-4.fc45.ppc64le mpfr-4.2.2-4.fc45.ppc64le ncurses-base-6.6-3.fc45.noarch ncurses-libs-6.6-3.fc45.ppc64le nettle-4.0-5.fc45.ppc64le ngtcp2-1.22.1-3.fc45.ppc64le ngtcp2-crypto-ossl-1.22.1-3.fc45.ppc64le npth-1.8-5.fc45.ppc64le ocaml-srpm-macros-11-4.fc45.noarch openblas-srpm-macros-2-22.fc45.noarch openldap-2.6.14-1.fc46.ppc64le openssl-libs-4.0.2-1.fc46.ppc64le p11-kit-0.26.5-1.fc45.ppc64le p11-kit-trust-0.26.5-1.fc45.ppc64le package-notes-srpm-macros-0.20-2.fc45.noarch pam-libs-1.7.2-4.fc45.ppc64le patch-2.8-5.fc45.ppc64le pcre2-10.47-1.fc45.2.ppc64le pcre2-syntax-10.47-1.fc45.2.noarch perl-srpm-macros-1-65.fc45.noarch pkgconf-2.5.1-2.fc45.ppc64le pkgconf-m4-2.5.1-2.fc45.noarch pkgconf-pkg-config-2.5.1-2.fc45.ppc64le policycoreutils-3.11-2.fc45.ppc64le popt-1.19-11.fc45.ppc64le publicsuffix-list-dafsa-20260624-2.fc45.noarch pyproject-srpm-macros-1.23.2-1.fc45.noarch python-pip-wheel-26.1.2-5.fc46.noarch python-srpm-macros-3.15-2.fc45.noarch python3-3.15.0~rc1-1.fc45.ppc64le python3-libs-3.15.0~rc1-1.fc45.ppc64le qt5-srpm-macros-5.15.18-3.fc45.noarch qt6-srpm-macros-6.11.2-1.fc46.noarch readline-8.3-6.fc45.ppc64le redhat-rpm-config-344-5.fc45.noarch redhat-systemd-presets-102-3.fc45.noarch redhat-systemd-presets-common-102-3.fc45.noarch rpm-6.1.0-1.fc46.ppc64le rpm-build-6.1.0-1.fc46.ppc64le rpm-build-libs-6.1.0-1.fc46.ppc64le rpm-libs-6.1.0-1.fc46.ppc64le rpm-plugin-selinux-6.1.0-1.fc46.ppc64le rpm-sequoia-1.10.2-5.fc45.ppc64le rpm-sign-libs-6.1.0-1.fc46.ppc64le rust-srpm-macros-28.5-2.fc45.noarch sed-4.10-2.fc45.ppc64le selinux-policy-45.15-1.fc46.noarch selinux-policy-targeted-45.15-1.fc46.noarch setup-2.15.1-2.fc45.noarch shadow-utils-4.20.0-1.fc45.ppc64le sqlite-libs-3.53.4-1.fc45.ppc64le systemd-libs-261.2-1.fc45.ppc64le systemd-standalone-sysusers-261.2-1.fc45.ppc64le tar-1.35-9.fc45.ppc64le tpm2-tss-4.2.0-1.fc45.ppc64le tree-sitter-srpm-macros-0.4.6-2.fc45.noarch tzdata-2026c-1.fc45.noarch unzip-6.0-71.fc45.ppc64le util-linux-2.42.2-3.fc45.ppc64le util-linux-core-2.42.2-3.fc45.ppc64le which-2.25-2.fc46.ppc64le xxhash-libs-0.8.3-5.fc45.ppc64le xz-5.8.3-2.fc45.ppc64le xz-libs-5.8.3-2.fc45.ppc64le zig-srpm-macros-1-9.fc45.noarch zip-3.0-46.fc45.ppc64le zlib-ng-compat-2.3.3-6.fc45.ppc64le zstd-1.5.7-6.fc45.ppc64le Start: buildsrpm Start: rpmbuild -bs Building target platforms: ppc64le Building for target ppc64le warning: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit setting SOURCE_DATE_EPOCH=1785456000 Wrote: /builddir/build/SRPMS/bird-3.3.2-1.fc46.src.rpm RPM build warnings: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-80bm30eq/bird/bird.spec) Config(child) 1 minutes 59 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/bird-3.3.2-1.fc46.src.rpm) Config(fedora-rawhide-ppc64le) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-ppc64le-bootstrap-1788245774.154554/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-ppc64le-bootstrap-1788245774.154554/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-6.1.0-1.fc46.ppc64le rpm-sequoia-1.10.2-5.fc45.ppc64le dnf5-5.4.3.0-2.fc46.ppc64le dnf5-plugins-5.4.3.0-2.fc46.ppc64le Finish: chroot init Start: build phase for bird-3.3.2-1.fc46.src.rpm Start: build setup for bird-3.3.2-1.fc46.src.rpm Building target platforms: ppc64le Building for target ppc64le warning: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit setting SOURCE_DATE_EPOCH=1785456000 Wrote: /builddir/build/SRPMS/bird-3.3.2-1.fc46.src.rpm RPM build warnings: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit Updating and loading repositories: fedora 100% | 14.7 KiB/s | 5.8 KiB | 00m00s Additional repo copr_tstellar_fedora_c 100% | 6.5 KiB/s | 1.5 KiB | 00m00s Additional repo copr_fedora_llvm_team_ 100% | 5.8 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 6.5 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "gcc-16.2.1-2.fc46.ppc64le" is already installed. Package "make-1:4.4.1-13.fc45.ppc64le" is already installed. Package "sed-4.10-2.fc45.ppc64le" is already installed. Package Arch Version Repository Size Installing: bison ppc64le 0:3.8.2-16.fc45 copr_base 3.7 MiB flex ppc64le 0:2.6.4-25.fc45 copr_base 913.1 KiB libssh-devel ppc64le 0:0.12.2-1.fc45 fedora 204.2 KiB linuxdoc-tools ppc64le 0:0.9.85-4.fc45 copr_base 621.1 KiB ncurses-devel ppc64le 0:6.6-3.fc45 fedora 895.6 KiB perl-FindBin noarch 0:1.54-527.fc45 fedora 6.8 KiB readline-devel ppc64le 0:8.3-6.fc45 fedora 595.7 KiB sgml-common noarch 0:0.6.3-69.fc45 fedora 168.1 KiB systemd-rpm-macros noarch 0:261.2-1.fc45 fedora 8.5 KiB texlive-enumitem noarch 12:svn77682-7.fc45 fedora 268.0 KiB Installing dependencies: abattis-cantarell-vf-fonts noarch 0:0.301-18.fc45 fedora 192.7 KiB adobe-mappings-cmap noarch 0:20231115-6.fc45 fedora 15.2 MiB adobe-mappings-cmap-deprecated noarch 0:20231115-6.fc45 fedora 582.1 KiB adobe-mappings-pdf noarch 0:20190401-13.fc45 fedora 4.4 MiB avahi-libs ppc64le 0:0.9~rc2-9.fc45 copr_base 355.6 KiB biber noarch 0:2.22-2.fc46 fedora 1.4 MiB cairo ppc64le 0:1.18.4-9.fc45 fedora 2.1 MiB cmake-filesystem ppc64le 0:4.3.0-5.fc45 fedora 0.0 B cups-filesystem noarch 1:2.4.19-4.fc45 copr_base 0.0 B cups-libs ppc64le 1:2.4.19-4.fc45 copr_base 986.5 KiB dblatex noarch 0:0.3.12-33.fc45 fedora 5.2 MiB dbus-libs ppc64le 1:1.16.2-6.fc45 fedora 461.7 KiB default-fonts-core-sans noarch 0:4.3-3.fc45 fedora 11.9 KiB desktop-file-utils ppc64le 0:0.28-8.fc45 copr_base 317.3 KiB docbook-dtds noarch 0:1.0-92.fc45 fedora 6.7 MiB emacs-filesystem ppc64le 1:30.2-3.fc45 fedora 0.0 B fontconfig ppc64le 0:2.18.3-1.fc45 fedora 1.7 MiB fonts-filesystem noarch 1:5.0.0-4.fc45 fedora 0.0 B freetype ppc64le 0:2.14.3-2.fc45 copr_base 1.2 MiB ghostscript ppc64le 0:10.07.1-2.fc46 copr_base 86.3 KiB ghostscript-tools-dvipdf noarch 0:10.07.1-2.fc46 copr_base 1.4 KiB ghostscript-tools-fontutils noarch 0:10.07.1-2.fc46 copr_base 2.5 KiB ghostscript-tools-printing noarch 0:10.07.1-2.fc46 copr_base 3.5 KiB glib2 ppc64le 0:2.89.4-1.fc46 fedora 16.9 MiB google-droid-sans-fonts noarch 0:20200215-25.fc45 fedora 6.3 MiB google-noto-fonts-common noarch 0:20260601-3.fc45 fedora 17.7 KiB google-noto-sans-vf-fonts noarch 0:20260601-3.fc45 fedora 1.4 MiB graphite2 ppc64le 0:1.3.14-22.fc45 copr_base 303.9 KiB groff ppc64le 0:1.24.1-2.fc45 fedora 4.7 MiB groff-base ppc64le 0:1.24.1-2.fc45 fedora 4.8 MiB harfbuzz ppc64le 0:14.4.0-1.fc46 fedora 3.4 MiB hostname ppc64le 0:3.25-5.fc45 copr_base 89.0 KiB jbig2dec-libs ppc64le 0:0.20-9.fc45 fedora 236.8 KiB jbigkit-libs ppc64le 0:2.1-34.fc45 fedora 180.7 KiB keyutils-libs-devel ppc64le 0:1.6.3-8.fc45 copr_base 48.2 KiB krb5-devel ppc64le 0:1.22.2-9.fc45 fedora 709.9 KiB latexmk noarch 0:4.88-2.fc45 fedora 1.0 MiB lcms2 ppc64le 0:2.16-8.fc45 copr_base 677.1 KiB libICE ppc64le 0:1.1.2-5.fc45 fedora 222.2 KiB libSM ppc64le 0:1.2.5-5.fc45 fedora 128.8 KiB libX11 ppc64le 0:1.8.13-2.fc45 fedora 1.6 MiB libX11-common noarch 0:1.8.13-2.fc45 fedora 1.1 MiB libXau ppc64le 0:1.0.12-5.fc45 fedora 120.5 KiB libXaw ppc64le 0:1.0.16-6.fc45 fedora 614.8 KiB libXext ppc64le 0:1.3.6-6.fc45 fedora 145.7 KiB libXi ppc64le 0:1.8.3-2.fc45 fedora 136.3 KiB libXmu ppc64le 0:1.2.1-6.fc45 fedora 326.6 KiB libXpm ppc64le 0:3.5.19-4.fc45 copr_base 212.5 KiB libXrender ppc64le 0:0.9.12-5.fc45 fedora 69.8 KiB libXt ppc64le 0:1.3.1-5.fc45 fedora 541.4 KiB libcom_err-devel ppc64le 0:1.47.4-2.fc45 fedora 16.7 KiB libdatrie ppc64le 0:0.2.14-3.fc45 fedora 93.4 KiB libgs ppc64le 0:10.07.1-2.fc46 copr_base 26.5 MiB libicu ppc64le 0:78.3-8.fc45 fedora 39.2 MiB libijs ppc64le 0:0.35-27.fc45 copr_base 101.1 KiB libjpeg-turbo ppc64le 0:3.1.4.1-2.fc45 fedora 873.4 KiB libkadm5 ppc64le 0:1.22.2-9.fc45 fedora 329.6 KiB liblerc ppc64le 0:4.2.0-1.fc45 fedora 739.5 KiB libpaper ppc64le 1:2.1.1-11.fc45 fedora 96.4 KiB libpng ppc64le 2:1.6.58-2.fc45 fedora 333.6 KiB libselinux-devel ppc64le 0:3.11-4.fc45 fedora 121.9 KiB libsepol-devel ppc64le 0:3.11-2.fc45 fedora 120.7 KiB libthai ppc64le 0:0.1.30-3.fc45 fedora 824.8 KiB libtiff ppc64le 0:4.7.2-2.fc45 fedora 787.0 KiB libverto-devel ppc64le 0:0.3.2-13.fc45 fedora 25.7 KiB libwebp ppc64le 0:1.6.0-4.fc45 fedora 943.5 KiB libxcb ppc64le 0:1.17.0-8.fc45 fedora 2.2 MiB libxslt ppc64le 0:1.1.43-9.fc45 copr_base 611.5 KiB lzo ppc64le 0:2.10-17.fc45 fedora 226.5 KiB m4 ppc64le 0:1.4.21-3.fc45 fedora 952.5 KiB mailcap noarch 0:2.1.54-11.fc45 fedora 86.0 KiB ncurses ppc64le 0:6.6-3.fc45 fedora 958.6 KiB ncurses-c++-libs ppc64le 0:6.6-3.fc45 fedora 265.1 KiB openjade ppc64le 0:1.3.2-86.fc45 fedora 4.3 MiB openjpeg ppc64le 0:2.5.4-4.fc45 fedora 540.2 KiB opensp ppc64le 0:1.5.2-51.fc45 fedora 3.3 MiB pcre2-devel ppc64le 0:10.47-1.fc45.2 copr_base 2.1 MiB pcre2-utf16 ppc64le 0:10.47-1.fc45.2 copr_base 774.4 KiB pcre2-utf32 ppc64le 0:10.47-1.fc45.2 copr_base 774.2 KiB perl-Authen-SASL noarch 0:2.2000-2.fc45 fedora 133.1 KiB perl-AutoLoader noarch 0:5.74-527.fc45 fedora 20.6 KiB perl-B ppc64le 0:1.92-527.fc45 fedora 557.4 KiB perl-B-Hooks-EndOfScope noarch 0:0.28-6.fc45 fedora 69.3 KiB perl-Business-ISBN noarch 0:3.014-2.fc45 fedora 56.1 KiB perl-Business-ISBN-Data noarch 0:20260827.001-1.fc46 fedora 310.7 KiB perl-Business-ISMN noarch 0:1.205-4.fc45 fedora 36.7 KiB perl-Business-ISSN noarch 0:1.008-4.fc45 fedora 21.7 KiB perl-Carp noarch 0:1.54-527.fc45 fedora 46.6 KiB perl-Class-Accessor noarch 0:0.51-25.fc45 fedora 40.8 KiB perl-Class-Data-Inheritable noarch 0:0.10-5.fc45 fedora 6.3 KiB perl-Class-Inspector noarch 0:1.36-21.fc45 fedora 57.5 KiB perl-Class-Method-Modifiers noarch 0:2.15-9.fc45 fedora 102.5 KiB perl-Class-Singleton noarch 0:1.6-16.fc45 fedora 39.7 KiB perl-Class-Struct noarch 0:0.68-527.fc45 fedora 25.4 KiB perl-Clone ppc64le 0:0.50-3.fc45 fedora 101.0 KiB perl-Clone-PP noarch 0:1.08-16.fc45 fedora 12.9 KiB perl-Compress-Raw-Bzip2 ppc64le 0:2.224-1.fc46 fedora 105.1 KiB perl-Compress-Raw-Zlib ppc64le 0:2.224-1.fc46 fedora 233.1 KiB perl-Convert-ASN1 noarch 0:0.34-8.fc45 fedora 170.0 KiB perl-Crypt-URandom ppc64le 0:0.55-3.fc45 copr_base 116.8 KiB perl-Data-Compare noarch 0:1.29-9.fc45 fedora 55.5 KiB perl-Data-Dump noarch 0:1.25-15.fc45 fedora 50.2 KiB perl-Data-Dumper ppc64le 0:2.192-528.fc45 fedora 135.2 KiB perl-Data-OptList noarch 0:0.114-9.fc45 fedora 50.1 KiB perl-Data-Uniqid noarch 0:0.12-39.fc45 fedora 4.2 KiB perl-Date-ISO8601 noarch 0:0.005-25.fc45 fedora 24.5 KiB perl-Date-Manip noarch 0:6.99-2.fc45 fedora 10.8 MiB perl-DateTime ppc64le 2:1.66-7.fc45 fedora 427.0 KiB perl-DateTime-Calendar-Julian noarch 0:0.107-13.fc45 fedora 32.8 KiB perl-DateTime-Format-Builder noarch 0:0.8300-18.fc45 fedora 202.3 KiB perl-DateTime-Format-Strptime noarch 1:1.80-3.fc45 fedora 96.5 KiB perl-DateTime-Locale noarch 0:1.46-1.fc46 fedora 25.1 MiB perl-DateTime-TimeZone noarch 0:2.69-3.fc45 fedora 6.1 MiB perl-DateTime-TimeZone-SystemV noarch 0:0.010-26.fc45 fedora 28.4 KiB perl-DateTime-TimeZone-Tzfile noarch 0:0.011-26.fc45 fedora 24.6 KiB perl-Devel-CallChecker ppc64le 0:0.009-13.fc45 copr_base 88.7 KiB perl-Devel-Caller ppc64le 0:2.07-13.fc45 fedora 79.0 KiB perl-Devel-GlobalDestruction noarch 0:0.14-29.fc45 fedora 16.6 KiB perl-Devel-LexAlias ppc64le 0:0.05-44.fc45 fedora 70.7 KiB perl-Devel-StackTrace noarch 1:2.05-8.fc45 fedora 48.9 KiB perl-Digest noarch 0:1.20-527.fc45 fedora 35.2 KiB perl-Digest-HMAC noarch 0:1.05-5.fc45 fedora 29.5 KiB perl-Digest-MD5 ppc64le 0:2.59-527.fc45 fedora 103.2 KiB perl-Digest-SHA ppc64le 1:6.04-528.fc45 fedora 136.0 KiB perl-DirHandle noarch 0:1.05-527.fc45 fedora 3.4 KiB perl-Dist-CheckConflicts noarch 0:0.11-35.fc45 fedora 31.7 KiB perl-DynaLoader ppc64le 0:1.57-527.fc45 fedora 32.1 KiB perl-DynaLoader-Functions noarch 0:0.004-9.fc45 fedora 19.7 KiB perl-Email-Date-Format noarch 0:1.008-9.fc45 fedora 24.8 KiB perl-Encode ppc64le 4:3.24-527.fc45 fedora 4.8 MiB perl-Encode-Locale noarch 0:1.05-34.fc45 fedora 19.0 KiB perl-English noarch 0:1.12-527.fc45 fedora 6.2 KiB perl-Errno ppc64le 0:1.39-527.fc45 fedora 8.4 KiB perl-Eval-Closure noarch 0:0.14-28.fc45 fedora 33.3 KiB perl-Exception-Class noarch 0:1.45-15.fc45 fedora 92.4 KiB perl-Exporter noarch 0:5.79-527.fc45 fedora 54.2 KiB perl-ExtUtils-MM-Utils noarch 2:7.78-527.fc45 fedora 2.9 KiB perl-Fcntl ppc64le 0:1.20-527.fc45 fedora 92.3 KiB perl-File-Basename noarch 0:2.86-527.fc45 fedora 14.0 KiB perl-File-Compare noarch 0:1.100.800-527.fc45 fedora 5.6 KiB perl-File-Copy noarch 0:2.43-527.fc45 fedora 19.6 KiB perl-File-Find noarch 0:1.44-527.fc45 fedora 42.0 KiB perl-File-Find-Rule noarch 0:0.35-4.fc45 fedora 42.4 KiB perl-File-Listing noarch 0:6.16-8.fc45 fedora 41.2 KiB perl-File-Path noarch 0:2.18-527.fc45 fedora 63.4 KiB perl-File-ShareDir noarch 0:1.118-16.fc45 fedora 56.2 KiB perl-File-Slurper noarch 0:0.014-10.fc45 fedora 28.7 KiB perl-File-Temp noarch 1:0.231.200-527.fc45 fedora 163.7 KiB perl-File-stat noarch 0:1.15-527.fc45 fedora 13.7 KiB perl-FileHandle noarch 0:2.05-527.fc45 fedora 9.4 KiB perl-Filter ppc64le 2:1.65-527.fc45 fedora 363.4 KiB perl-GSSAPI ppc64le 0:0.28-53.fc45 fedora 176.6 KiB perl-Getopt-Long noarch 1:2.58-527.fc45 fedora 144.5 KiB perl-Getopt-Std noarch 0:1.15-527.fc45 fedora 12.5 KiB perl-Getopt-Tabular noarch 0:0.3-41.fc45 fedora 86.8 KiB perl-HTML-Parser ppc64le 0:3.85-3.fc45 fedora 291.9 KiB perl-HTML-Tagset noarch 0:3.24-6.fc45 fedora 18.7 KiB perl-HTTP-Cookies noarch 0:6.12-1.fc45 fedora 80.0 KiB perl-HTTP-Date noarch 0:6.08-2.fc45 fedora 44.3 KiB perl-HTTP-Message noarch 0:7.04-1.fc45 fedora 216.6 KiB perl-HTTP-Negotiate noarch 0:6.01-43.fc45 fedora 27.6 KiB perl-HTTP-Tiny noarch 0:0.096-528.fc45 fedora 162.4 KiB perl-Hash-Util-FieldHash ppc64le 0:1.27-527.fc45 fedora 106.3 KiB perl-I18N-LangTags noarch 0:0.45-527.fc45 fedora 82.4 KiB perl-I18N-Langinfo ppc64le 0:0.24-527.fc45 fedora 86.3 KiB perl-IO ppc64le 0:1.56-527.fc45 fedora 191.0 KiB perl-IO-Compress noarch 0:2.224-1.fc46 fedora 1.0 MiB perl-IO-HTML noarch 0:1.004-17.fc45 fedora 45.2 KiB perl-IO-Socket-IP noarch 0:0.44-527.fc45 fedora 100.5 KiB perl-IO-Socket-SSL noarch 0:2.099-2.fc45 fedora 726.9 KiB perl-IO-String noarch 0:1.08-55.fc45 fedora 16.8 KiB perl-IPC-Cmd noarch 2:1.04-527.fc45 fedora 84.8 KiB perl-IPC-Open3 noarch 0:1.24-527.fc45 fedora 27.7 KiB perl-IPC-Run3 noarch 0:0.049-6.fc45 fedora 60.3 KiB perl-IPC-SysV ppc64le 0:2.09-527.fc45 fedora 113.4 KiB perl-JSON noarch 0:4.11-2.fc45 fedora 267.9 KiB perl-JSON-PP noarch 1:4.18-3.fc45 fedora 142.7 KiB perl-LDAP noarch 1:0.68-18.fc45 fedora 938.1 KiB perl-LWP-MediaTypes noarch 0:6.04-23.fc45 fedora 79.0 KiB perl-LWP-Protocol-https noarch 0:6.17-1.fc45 fedora 30.9 KiB perl-Lingua-Translit noarch 0:0.29-12.fc45 fedora 177.5 KiB perl-List-AllUtils noarch 0:0.19-17.fc45 fedora 134.3 KiB perl-List-SomeUtils noarch 0:0.59-10.fc45 fedora 107.2 KiB perl-List-UtilsBy noarch 0:0.12-14.fc45 fedora 55.8 KiB perl-Locale-Maketext noarch 0:1.33-527.fc45 fedora 171.2 KiB perl-Locale-Maketext-Simple noarch 1:0.21-527.fc45 fedora 12.8 KiB perl-Log-Dispatch noarch 0:2.71-9.fc45 fedora 143.0 KiB perl-Log-Dispatch-FileRotate noarch 0:1.38-14.fc45 fedora 52.6 KiB perl-Log-Log4perl noarch 0:1.58-1.fc46 fedora 818.8 KiB perl-MIME-Base32 noarch 0:1.303-26.fc45 fedora 30.7 KiB perl-MIME-Base64 ppc64le 0:3.16-527.fc45 fedora 93.5 KiB perl-MIME-Charset noarch 0:1.013.1-11.fc45 fedora 104.4 KiB perl-MIME-Lite noarch 0:3.038-2.fc45 fedora 234.0 KiB perl-MRO-Compat noarch 0:0.15-14.fc45 fedora 43.0 KiB perl-Mail-Sender noarch 1:0.903-29.fc45 fedora 160.6 KiB perl-Mail-Sendmail noarch 0:0.83-2.fc45 fedora 66.1 KiB perl-MailTools noarch 0:2.22-5.fc45 fedora 203.5 KiB perl-Math-BigInt noarch 1:2.0050.03-527.fc45 fedora 1.1 MiB perl-Math-Complex noarch 0:1.63-527.fc45 fedora 85.1 KiB perl-Module-CoreList noarch 1:5.20260820-1.fc46 fedora 1.3 MiB perl-Module-Implementation noarch 0:0.09-44.fc45 fedora 24.7 KiB perl-Module-Load noarch 1:0.36-527.fc45 fedora 14.9 KiB perl-Module-Load-Conditional noarch 0:0.74-527.fc45 fedora 28.7 KiB perl-Module-Metadata noarch 0:1.000040-1.fc45 fedora 70.4 KiB perl-Module-Runtime noarch 0:0.018-4.fc45 fedora 63.1 KiB perl-Mozilla-CA noarch 0:20260813-1.fc46 fedora 16.8 KiB perl-NTLM noarch 0:1.09-43.fc45 fedora 31.2 KiB perl-Net-HTTP noarch 0:6.24-3.fc45 fedora 76.1 KiB perl-Net-SMTP-SSL noarch 0:1.04-29.fc45 fedora 4.2 KiB perl-Net-SSLeay ppc64le 0:1.96-5.fc45 fedora 1.5 MiB perl-Number-Compare noarch 0:0.03-43.fc45 fedora 4.5 KiB perl-Opcode ppc64le 0:1.71-527.fc45 fedora 92.4 KiB perl-POSIX ppc64le 0:2.26-527.fc45 fedora 326.1 KiB perl-Package-Generator noarch 0:1.106-36.fc45 fedora 29.9 KiB perl-Package-Stash noarch 0:0.40-12.fc45 copr_base 55.9 KiB perl-Package-Stash-XS ppc64le 0:0.30-15.fc45 fedora 95.8 KiB perl-PadWalker ppc64le 0:2.5-21.fc45 fedora 84.5 KiB perl-Params-Check noarch 1:0.38-527.fc45 fedora 27.6 KiB perl-Params-Classify ppc64le 0:0.015-30.fc45 fedora 95.3 KiB perl-Params-Util ppc64le 0:1.102-22.fc45 fedora 102.1 KiB perl-Params-Validate ppc64le 0:1.31-15.fc45 fedora 160.5 KiB perl-Params-ValidationCompiler noarch 0:0.31-10.fc45 fedora 91.1 KiB perl-Parse-RecDescent noarch 0:1.967015-27.fc45 fedora 522.0 KiB perl-PathTools ppc64le 0:3.95-527.fc45 fedora 223.8 KiB perl-Pod-Escapes noarch 1:1.07-527.fc45 fedora 24.9 KiB perl-Pod-Perldoc noarch 0:3.28.01-527.fc45 fedora 163.8 KiB perl-Pod-Simple noarch 1:3.48-527.fc45 fedora 565.2 KiB perl-Pod-Usage noarch 4:2.05-527.fc45 fedora 86.3 KiB perl-Ref-Util noarch 0:0.204-25.fc45 copr_base 31.5 KiB perl-Ref-Util-XS ppc64le 0:0.117-30.fc45 fedora 77.7 KiB perl-Regexp-Common noarch 0:2024080801-5.fc45 fedora 462.2 KiB perl-Role-Tiny noarch 0:2.002005-2.fc45 fedora 63.4 KiB perl-Safe noarch 0:2.47-527.fc45 fedora 30.7 KiB perl-Scalar-List-Utils ppc64le 5:1.70-527.fc45 fedora 152.5 KiB perl-SelectSaver noarch 0:1.03-527.fc45 fedora 2.1 KiB perl-Socket ppc64le 4:2.043-1.fc46 fedora 145.4 KiB perl-Sort-Key ppc64le 0:1.33-38.fc45 fedora 113.2 KiB perl-Specio noarch 0:0.53-3.fc45 fedora 333.4 KiB perl-Storable ppc64le 1:3.41-527.fc45 fedora 242.8 KiB perl-Sub-Exporter noarch 0:0.991-9.fc45 fedora 194.9 KiB perl-Sub-Exporter-Progressive noarch 0:0.001013-29.fc45 fedora 27.3 KiB perl-Sub-Install noarch 0:0.929-10.fc45 fedora 35.9 KiB perl-Symbol noarch 0:1.09-527.fc45 fedora 6.8 KiB perl-Sys-Hostname ppc64le 0:1.25-527.fc45 fedora 71.4 KiB perl-Sys-Hostname-Long noarch 0:1.5-34.fc45 fedora 15.1 KiB perl-Sys-Syslog ppc64le 0:0.36-528.fc45 fedora 142.1 KiB perl-Term-ANSIColor noarch 0:5.01-527.fc45 fedora 97.5 KiB perl-Term-Cap noarch 0:1.18-527.fc45 fedora 29.3 KiB perl-Text-Balanced noarch 0:2.07-527.fc45 fedora 111.2 KiB perl-Text-BibTeX ppc64le 0:0.91-8.fc45 fedora 740.5 KiB perl-Text-CSV noarch 0:2.06-3.fc45 fedora 365.7 KiB perl-Text-Glob noarch 0:0.11-28.fc45 fedora 8.4 KiB perl-Text-ParseWords noarch 0:3.31-527.fc45 fedora 13.6 KiB perl-Text-Roman noarch 0:3.5-33.fc45 fedora 33.1 KiB perl-Text-Soundex ppc64le 0:3.05-38.fc45 fedora 102.3 KiB perl-Text-Tabs+Wrap noarch 0:2024.001-527.fc45 fedora 22.6 KiB perl-Text-Unidecode noarch 0:1.30-29.fc45 fedora 448.7 KiB perl-Tie noarch 0:4.6-527.fc45 fedora 32.1 KiB perl-Tie-Cycle noarch 0:1.233-2.fc45 fedora 24.1 KiB perl-Tie-RefHash noarch 0:1.41-527.fc45 fedora 35.9 KiB perl-Time-HiRes ppc64le 4:1.9780-527.fc45 fedora 151.3 KiB perl-Time-Local noarch 2:1.350-527.fc45 fedora 69.0 KiB perl-TimeDate noarch 1:2.35-2.fc45 fedora 189.8 KiB perl-Try-Tiny noarch 0:0.32-5.fc45 fedora 67.3 KiB perl-URI noarch 0:5.36-1.fc46 fedora 275.3 KiB perl-Unicode-Collate ppc64le 0:1.31-527.fc45 fedora 4.4 MiB perl-Unicode-LineBreak ppc64le 0:2019.001-28.fc45 fedora 315.3 KiB perl-Unicode-Normalize ppc64le 0:1.32-527.fc45 fedora 524.3 KiB perl-Unicode-UCD noarch 0:0.83-527.fc45 fedora 206.4 KiB perl-Variable-Magic ppc64le 0:0.65-1.fc46 fedora 155.2 KiB perl-WWW-RobotRules noarch 0:6.03-3.fc45 fedora 41.1 KiB perl-XML-LibXML ppc64le 1:2.0213-3.fc45 fedora 1.0 MiB perl-XML-LibXML-Simple noarch 0:1.01-20.fc45 fedora 50.8 KiB perl-XML-LibXSLT ppc64le 0:2.003.000-8.fc45 fedora 148.9 KiB perl-XML-NamespaceSupport noarch 0:1.12-28.fc45 fedora 44.7 KiB perl-XML-Parser ppc64le 0:2.59-4.fc45 fedora 759.1 KiB perl-XML-SAX noarch 0:1.02-21.fc45 fedora 120.2 KiB perl-XML-SAX-Base noarch 0:1.09-28.fc45 fedora 172.7 KiB perl-XML-Writer noarch 0:0.900-19.fc45 fedora 65.8 KiB perl-XML-XPath noarch 0:1.49-2.fc45 fedora 202.7 KiB perl-XString ppc64le 0:0.005-20.fc45 fedora 88.5 KiB perl-autodie noarch 0:2.37-527.fc45 fedora 214.9 KiB perl-autovivification ppc64le 0:0.18-30.fc45 fedora 93.7 KiB perl-base noarch 0:2.27-527.fc45 fedora 12.6 KiB perl-constant noarch 0:1.33-528.fc45 fedora 26.3 KiB perl-deprecate noarch 0:0.04-527.fc45 fedora 6.6 KiB perl-encoding ppc64le 4:3.00-527.fc45 fedora 150.4 KiB perl-if noarch 0:0.61.000-527.fc45 fedora 5.8 KiB perl-interpreter ppc64le 4:5.44.0-527.fc45 fedora 175.7 KiB perl-lib ppc64le 0:0.65-527.fc45 fedora 8.5 KiB perl-libnet noarch 0:3.15-528.fc45 fedora 288.4 KiB perl-libs ppc64le 4:5.44.0-527.fc45 fedora 12.8 MiB perl-libwww-perl noarch 0:6.83-2.fc45 fedora 480.5 KiB perl-locale noarch 0:1.13-527.fc45 fedora 6.1 KiB perl-meta-notation noarch 0:5.44.0-527.fc45 fedora 2.0 KiB perl-mro ppc64le 0:1.30-527.fc45 fedora 81.1 KiB perl-namespace-autoclean noarch 0:0.31-5.fc45 fedora 43.5 KiB perl-namespace-clean noarch 0:0.27-31.fc45 fedora 38.7 KiB perl-open noarch 0:1.13-527.fc45 fedora 11.3 KiB perl-overload noarch 0:1.40-527.fc45 fedora 71.6 KiB perl-overloading noarch 0:0.03-527.fc45 fedora 4.8 KiB perl-parent noarch 1:0.244-527.fc45 fedora 10.3 KiB perl-podlators noarch 1:6.1.0-2.fc45 fedora 324.7 KiB perl-sigtrap noarch 0:1.10-527.fc45 fedora 11.1 KiB perl-subs noarch 0:1.04-527.fc45 fedora 2.1 KiB perl-vars noarch 0:1.05-527.fc45 fedora 3.9 KiB perl-version ppc64le 9:0.99.34-527.fc45 fedora 160.4 KiB perltidy noarch 0:20260826-1.fc46 fedora 4.5 MiB pixman ppc64le 0:0.46.2-4.fc45 fedora 653.1 KiB ruby ppc64le 0:4.0.6-37.fc45 fedora 153.8 KiB ruby-libs ppc64le 0:4.0.6-37.fc45 fedora 18.4 MiB rubypick noarch 0:1.1.1-25.fc45 fedora 4.4 KiB sombok ppc64le 0:2.4.0-26.fc45 fedora 142.8 KiB teckit ppc64le 0:2.5.13-3.fc45 copr_base 2.4 MiB tex-preview noarch 0:14.1.2-3.fc45 fedora 396.0 KiB texlive-adobemapping noarch 12:svn66552-7.fc45 fedora 20.1 MiB texlive-ae noarch 12:svn15878-5.fc45 fedora 484.5 KiB texlive-algorithms noarch 12:svn78101-3.fc45 fedora 390.1 KiB texlive-alphalph noarch 12:svn77682-7.fc45 fedora 375.9 KiB texlive-amscls noarch 12:svn77682-5.fc45 fedora 1.4 MiB texlive-amsfonts noarch 12:svn77682-12.fc45 fedora 7.2 MiB texlive-amsmath noarch 12:svn78101-5.fc45 fedora 3.0 MiB texlive-anysize noarch 12:svn77682-4.fc45 fedora 50.6 KiB texlive-appendix noarch 12:svn78101-7.fc45 fedora 338.6 KiB texlive-arabxetex noarch 12:svn77682-11.fc45 fedora 1.5 MiB texlive-arphic noarch 12:svn15878-9.fc45 fedora 30.8 MiB texlive-arydshln noarch 12:svn77682-7.fc45 fedora 947.1 KiB texlive-ascmac noarch 12:svn53411-6.fc45 fedora 202.8 KiB texlive-atbegshi noarch 12:svn77682-5.fc45 fedora 443.4 KiB texlive-attachfile2 noarch 12:svn77682-113.fc45 fedora 519.5 KiB texlive-atveryend noarch 12:svn77682-5.fc45 fedora 303.0 KiB texlive-auxhook noarch 12:svn77682-5.fc45 fedora 301.9 KiB texlive-avantgar noarch 12:svn77161-9.fc45 fedora 1.0 MiB texlive-babel noarch 12:svn78713-5.fc45 fedora 3.7 MiB texlive-babel-english noarch 12:svn77682-5.fc45 fedora 172.1 KiB texlive-babelbib noarch 12:svn76790-5.fc45 fedora 2.4 MiB texlive-base ppc64le 12:20260301-113.fc45 fedora 21.3 MiB texlive-beamer noarch 12:svn78101-4.fc45 fedora 4.8 MiB texlive-beton noarch 12:svn77682-7.fc45 fedora 125.7 KiB texlive-biblatex noarch 12:svn77682-9.fc45 fedora 21.8 MiB texlive-biblatex-gb7714-2015 noarch 12:svn78680-9.fc45 fedora 4.0 MiB texlive-bibtex ppc64le 12:svn77830-113.fc45 fedora 1.2 MiB texlive-bibtopic noarch 12:svn77682-9.fc45 fedora 302.8 KiB texlive-bidi noarch 12:svn77682-7.fc45 fedora 5.4 MiB texlive-bidi-atbegshi noarch 12:svn62009-11.fc45 fedora 217.0 KiB texlive-bidicontour noarch 12:svn77682-11.fc45 fedora 61.3 KiB texlive-bidipagegrid noarch 12:svn77682-11.fc45 fedora 58.7 KiB texlive-bidipresentation noarch 12:svn35267-11.fc45 fedora 290.1 KiB texlive-bidishadowtext noarch 12:svn77682-11.fc45 fedora 140.9 KiB texlive-bigfoot noarch 12:svn77682-7.fc45 fedora 866.0 KiB texlive-bigintcalc noarch 12:svn77682-5.fc45 fedora 515.6 KiB texlive-bitset noarch 12:svn77682-5.fc45 fedora 662.3 KiB texlive-bookman noarch 12:svn77161-9.fc45 fedora 947.8 KiB texlive-bookmark noarch 12:svn77682-5.fc45 fedora 554.2 KiB texlive-booktabs noarch 12:svn77682-4.fc45 fedora 314.8 KiB texlive-breqn noarch 12:svn77682-4.fc45 fedora 1.2 MiB texlive-businesscard-qrcode noarch 12:svn76924-11.fc45 fedora 626.5 KiB texlive-caption noarch 12:svn77682-4.fc45 fedora 1.9 MiB texlive-carlisle noarch 12:svn59577-5.fc45 fedora 116.9 KiB texlive-catchfile noarch 12:svn77682-7.fc45 fedora 318.8 KiB texlive-changebar noarch 12:svn77682-7.fc45 fedora 837.0 KiB texlive-changepage noarch 12:svn77682-7.fc45 fedora 371.9 KiB texlive-charter noarch 12:svn15878-9.fc45 fedora 405.7 KiB texlive-chicago noarch 12:svn77682-9.fc45 fedora 47.5 KiB texlive-cite noarch 12:svn77682-4.fc45 fedora 312.4 KiB texlive-citeref noarch 12:svn47407-9.fc45 fedora 72.2 KiB texlive-cjk noarch 12:svn60865-7.fc45 fedora 2.8 MiB texlive-cjk-ko noarch 12:svn70300-6.fc45 fedora 257.5 KiB texlive-cjkpunct noarch 12:svn41119-7.fc45 fedora 190.6 KiB texlive-cm noarch 12:svn57963-12.fc45 fedora 1.0 MiB texlive-cm-super noarch 12:svn15878-9.fc45 fedora 65.0 MiB texlive-cmap noarch 12:svn77682-4.fc45 fedora 50.4 KiB texlive-cmextra noarch 12:svn57866-9.fc45 fedora 132.5 KiB texlive-cns noarch 12:svn45677-9.fc45 fedora 9.6 MiB texlive-collcell noarch 12:svn77682-7.fc45 fedora 222.3 KiB texlive-collection-basic noarch 12:svn72890-12.fc45 fedora 0.0 B texlive-collection-fontsrecommended noarch 12:svn54074-9.fc45 fedora 0.0 B texlive-collection-latex noarch 12:svn78733-5.fc45 fedora 0.0 B texlive-collection-latexrecommended noarch 12:svn78568-4.fc45 fedora 0.0 B texlive-collection-xetex noarch 12:svn78834-11.fc45 fedora 0.0 B texlive-colorprofiles noarch 12:svn49086-12.fc45 fedora 274.8 KiB texlive-colortbl noarch 12:svn77682-5.fc45 fedora 694.5 KiB texlive-convbkmk noarch 12:svn49252-113.fc45 fedora 16.4 KiB texlive-courier noarch 12:svn77161-9.fc45 fedora 800.0 KiB texlive-cqubeamer noarch 12:svn54512-11.fc45 fedora 3.1 MiB texlive-crop noarch 12:svn77682-4.fc45 fedora 357.1 KiB texlive-ctable noarch 12:svn77682-4.fc45 fedora 819.5 KiB texlive-ctablestack noarch 12:svn78101-4.fc45 fedora 168.0 KiB texlive-ctex noarch 12:svn77682-11.fc45 fedora 2.7 MiB texlive-ctex-faq noarch 12:svn15878-11.fc45 fedora 729.9 KiB texlive-currfile noarch 12:svn77682-7.fc45 fedora 214.0 KiB texlive-datetime noarch 12:svn36650-7.fc45 fedora 807.3 KiB texlive-dehyph noarch 12:svn48599-8.fc45 fedora 239.9 KiB texlive-dvipdfmx ppc64le 12:svn77942-113.fc45 fedora 3.8 MiB texlive-dvips ppc64le 12:svn77830-113.fc45 fedora 1.7 MiB texlive-ec noarch 12:svn25033-12.fc45 fedora 2.5 MiB texlive-eepic noarch 12:svn77682-4.fc45 fedora 194.5 KiB texlive-enctex noarch 12:svn34957-12.fc45 fedora 572.4 KiB texlive-environ noarch 12:svn77682-7.fc45 fedora 175.8 KiB texlive-epstopdf noarch 12:svn71782-113.fc45 fedora 45.6 KiB texlive-epstopdf-pkg noarch 12:svn77682-5.fc45 fedora 386.5 KiB texlive-eso-pic noarch 12:svn77682-4.fc45 fedora 329.7 KiB texlive-etex noarch 12:svn77830-12.fc45 fedora 519.4 KiB texlive-etex-pkg noarch 12:svn77682-12.fc45 fedora 37.7 KiB texlive-etexcmds noarch 12:svn78101-5.fc45 fedora 321.0 KiB texlive-etoolbox noarch 12:svn77682-5.fc45 fedora 362.7 KiB texlive-euenc noarch 12:svn19795-4.fc45 fedora 187.7 KiB texlive-euler noarch 12:svn77682-4.fc45 fedora 277.5 KiB texlive-euro noarch 12:svn22191-9.fc45 fedora 262.0 KiB texlive-euro-ce noarch 12:svn25714-9.fc45 fedora 41.5 KiB texlive-eurosym noarch 12:svn78101-9.fc45 fedora 522.3 KiB texlive-everyhook noarch 12:svn35675-7.fc45 fedora 138.3 KiB texlive-everysel noarch 12:svn57489-4.fc45 fedora 457.9 KiB texlive-everyshi noarch 12:svn77682-4.fc45 fedora 157.4 KiB texlive-extractbb noarch 12:svn77855-113.fc45 fedora 40.7 KiB texlive-extsizes noarch 12:svn78101-4.fc45 fedora 344.1 KiB texlive-fancybox noarch 12:svn77682-4.fc45 fedora 366.5 KiB texlive-fancyhdr noarch 12:svn78348-5.fc45 fedora 1.3 MiB texlive-fancyref noarch 12:svn77682-4.fc45 fedora 172.5 KiB texlive-fancyvrb noarch 12:svn78721-4.fc45 fedora 289.6 KiB texlive-fandol noarch 12:svn37889-9.fc45 fedora 33.3 MiB texlive-filehook noarch 12:svn77682-4.fc45 fedora 364.6 KiB texlive-finstrut noarch 12:svn21719-7.fc45 fedora 231.6 KiB texlive-firstaid noarch 12:svn76740-5.fc45 fedora 334.7 KiB texlive-fix2col noarch 12:svn38770-5.fc45 fedora 234.4 KiB texlive-fixlatvian noarch 12:svn21631-11.fc45 fedora 193.7 KiB texlive-float noarch 12:svn77682-4.fc45 fedora 160.2 KiB texlive-fmtcount noarch 12:svn77682-7.fc45 fedora 882.7 KiB texlive-fnpara noarch 12:svn25607-7.fc45 fedora 202.9 KiB texlive-font-change-xetex noarch 12:svn40404-11.fc45 fedora 691.6 KiB texlive-fontbook noarch 12:svn23608-11.fc45 fedora 1.5 MiB texlive-fonts-tlwg noarch 12:svn78431-5.fc45 fedora 8.5 MiB texlive-fontspec noarch 12:svn77682-4.fc45 fedora 1.5 MiB texlive-fontwrap noarch 12:svn15878-11.fc45 fedora 386.8 KiB texlive-footmisc noarch 12:svn77682-7.fc45 fedora 732.1 KiB texlive-footnotehyper noarch 12:svn77682-4.fc45 fedora 116.1 KiB texlive-fp noarch 12:svn77682-4.fc45 fedora 361.0 KiB texlive-fpl noarch 12:svn54512-9.fc45 fedora 692.3 KiB texlive-garuda-c90 noarch 12:svn60832-7.fc45 fedora 33.6 KiB texlive-gensymb noarch 12:svn77682-7.fc45 fedora 257.7 KiB texlive-geometry noarch 12:svn78315-5.fc45 fedora 1.0 MiB texlive-gettitlestring noarch 12:svn77682-5.fc45 fedora 338.8 KiB texlive-glyphlist noarch 12:svn54074-113.fc45 fedora 90.3 KiB texlive-graphics noarch 12:svn78282-5.fc45 fedora 3.1 MiB texlive-graphics-cfg noarch 12:svn41448-5.fc45 fedora 4.0 KiB texlive-graphics-def noarch 12:svn76719-12.fc45 fedora 99.7 KiB texlive-grfext noarch 12:svn77682-5.fc45 fedora 327.8 KiB texlive-grffile noarch 12:svn78101-4.fc45 fedora 379.3 KiB texlive-gsftopk ppc64le 12:svn52851-113.fc45 fedora 78.8 KiB texlive-helvetic noarch 12:svn77161-9.fc45 fedora 1.7 MiB texlive-hologo noarch 12:svn78580-4.fc45 fedora 672.9 KiB texlive-hopatch noarch 12:svn65491-5.fc45 fedora 345.8 KiB texlive-hycolor noarch 12:svn77682-5.fc45 fedora 411.7 KiB texlive-hypcap noarch 12:svn77682-5.fc45 fedora 316.8 KiB texlive-hypdoc noarch 12:svn68661-7.fc45 fedora 359.9 KiB texlive-hyperref noarch 12:svn78811-5.fc45 fedora 5.4 MiB texlive-hyph-utf8 noarch 12:svn78069-12.fc45 fedora 388.3 KiB texlive-hyphen-base noarch 12:svn78076-12.fc45 fedora 83.0 KiB texlive-hyphen-english noarch 12:svn78069-7.fc45 fedora 177.2 KiB texlive-hyphenex noarch 12:svn57387-12.fc45 fedora 26.3 KiB texlive-ifmtarg noarch 12:svn77682-7.fc45 fedora 56.1 KiB texlive-ifplatform noarch 12:svn77682-12.fc45 fedora 171.0 KiB texlive-iftex noarch 12:svn77682-12.fc45 fedora 266.4 KiB texlive-index noarch 12:svn77682-4.fc45 fedora 323.1 KiB texlive-infwarerr noarch 12:svn77682-4.fc45 fedora 306.3 KiB texlive-intcalc noarch 12:svn77682-5.fc45 fedora 471.6 KiB texlive-interchar noarch 12:svn77682-11.fc45 fedora 143.7 KiB texlive-ipaex noarch 12:svn61719-6.fc45 fedora 40.6 MiB texlive-japanese-otf noarch 12:svn78329-6.fc45 fedora 42.4 MiB texlive-jknapltx noarch 12:svn19440-4.fc45 fedora 55.9 KiB texlive-knuth-lib noarch 12:svn57963-12.fc45 fedora 99.9 KiB texlive-knuth-local noarch 12:svn57963-12.fc45 fedora 106.1 KiB texlive-koma-script noarch 12:svn77575-4.fc45 fedora 14.9 MiB texlive-kotex-utf noarch 12:svn63690-6.fc45 fedora 11.1 MiB texlive-kpathsea ppc64le 12:svn77861-113.fc45 fedora 2.3 MiB texlive-kvdefinekeys noarch 12:svn77682-5.fc45 fedora 314.2 KiB texlive-kvoptions noarch 12:svn77682-5.fc45 fedora 550.0 KiB texlive-kvsetkeys noarch 12:svn77682-5.fc45 fedora 427.4 KiB texlive-l3backend noarch 12:svn78544-5.fc45 fedora 1.1 MiB texlive-l3backend-dev noarch 12:svn77954-7.fc45 fedora 1.1 MiB texlive-l3experimental noarch 12:svn78549-4.fc45 fedora 1.6 MiB texlive-l3kernel noarch 12:svn78545-5.fc45 fedora 15.2 MiB texlive-l3kernel-dev noarch 12:svn78876-7.fc45 fedora 15.2 MiB texlive-l3packages noarch 12:svn76637-5.fc45 fedora 1.9 MiB texlive-lastpage noarch 12:svn77682-7.fc45 fedora 633.5 KiB texlive-latex noarch 12:svn76924-113.fc45 fedora 48.8 MiB texlive-latex-base-dev noarch 12:svn78934-7.fc45 fedora 51.4 MiB texlive-latex-firstaid-dev noarch 12:svn78934-7.fc45 fedora 336.3 KiB texlive-latex-fonts noarch 12:svn28888-5.fc45 fedora 125.5 KiB texlive-latex-lab noarch 12:svn76739-5.fc45 fedora 16.5 MiB texlive-latexbug noarch 12:svn78389-4.fc45 fedora 285.9 KiB texlive-latexconfig noarch 12:svn68923-5.fc45 fedora 22.8 KiB texlive-letltxmacro noarch 12:svn77682-5.fc45 fedora 311.2 KiB texlive-lettrine noarch 12:svn77053-7.fc45 fedora 641.0 KiB texlive-lib ppc64le 12:20260301-113.fc45 fedora 734.7 KiB texlive-lineno noarch 12:svn78315-4.fc45 fedora 1.2 MiB texlive-listings noarch 12:svn77682-4.fc45 fedora 4.4 MiB texlive-lm noarch 12:svn77682-9.fc45 fedora 42.8 MiB texlive-lm-math noarch 12:svn67718-9.fc45 fedora 847.5 KiB texlive-logreq noarch 12:svn53003-9.fc45 fedora 53.5 KiB texlive-ltabptch noarch 12:svn17533-7.fc45 fedora 312.8 KiB texlive-ltx-talk noarch 12:svn78710-4.fc45 fedora 1.2 MiB texlive-ltxcmds noarch 12:svn77682-5.fc45 fedora 446.5 KiB texlive-ltxmisc noarch 12:svn75878-5.fc45 fedora 80.9 KiB texlive-lua-alt-getopt noarch 12:svn78415-12.fc45 fedora 14.9 KiB texlive-lua-uni-algos noarch 12:svn76195-5.fc45 fedora 160.1 KiB texlive-lua-unicode-math noarch 12:svn78498-4.fc45 fedora 258.9 KiB texlive-luabidi noarch 12:svn78654-7.fc45 fedora 188.0 KiB texlive-luacode noarch 12:svn78415-4.fc45 fedora 426.8 KiB texlive-luahbtex ppc64le 12:svn77830-113.fc45 fedora 7.3 MiB texlive-lualatex-math noarch 12:svn77682-4.fc45 fedora 233.0 KiB texlive-lualibs noarch 12:svn78415-4.fc45 fedora 885.6 KiB texlive-luaotfload noarch 12:svn74324-113.fc45 fedora 8.2 MiB texlive-luatex ppc64le 12:svn78218-113.fc45 fedora 10.2 MiB texlive-luatex85 noarch 12:svn77682-4.fc45 fedora 191.3 KiB texlive-luatexbase noarch 12:svn77682-4.fc45 fedora 288.6 KiB texlive-luatexja noarch 12:svn78752-6.fc45 fedora 5.6 MiB texlive-luatexko noarch 12:svn78005-4.fc45 fedora 509.6 KiB texlive-luatextra noarch 12:svn77682-4.fc45 fedora 312.4 KiB texlive-lwarp noarch 12:svn78111-113.fc45 fedora 4.8 MiB texlive-makecmds noarch 12:svn77682-7.fc45 fedora 152.9 KiB texlive-makeindex ppc64le 12:svn75712-113.fc45 fedora 518.4 KiB texlive-makerobust noarch 12:svn78101-7.fc45 fedora 84.5 KiB texlive-manfnt-font noarch 12:svn45777-9.fc45 fedora 42.5 KiB texlive-marvosym noarch 12:svn77682-9.fc45 fedora 671.5 KiB texlive-mathpazo noarch 12:svn77682-9.fc45 fedora 538.4 KiB texlive-mathspec noarch 12:svn77682-4.fc45 fedora 255.4 KiB texlive-mathtools noarch 12:svn78251-4.fc45 fedora 1.3 MiB texlive-mdwtools noarch 12:svn15878-4.fc45 fedora 2.1 MiB texlive-memoir noarch 12:svn77682-4.fc45 fedora 4.8 MiB texlive-metafont ppc64le 12:svn77830-113.fc45 fedora 1.0 MiB texlive-metalogo noarch 12:svn77682-4.fc45 fedora 120.4 KiB texlive-mfirstuc noarch 12:svn77682-7.fc45 fedora 1.1 MiB texlive-mflogo noarch 12:svn77682-12.fc45 fedora 277.4 KiB texlive-mflogo-font noarch 12:svn54512-9.fc45 fedora 39.2 KiB texlive-mfnfss noarch 12:svn77682-5.fc45 fedora 505.2 KiB texlive-mfware ppc64le 12:svn77830-113.fc45 fedora 422.1 KiB texlive-microtype noarch 12:svn78228-4.fc45 fedora 3.1 MiB texlive-minifp noarch 12:svn76924-7.fc45 fedora 514.5 KiB texlive-minitoc noarch 12:svn77682-7.fc45 fedora 9.5 MiB texlive-mnsymbol noarch 12:svn18651-7.fc45 fedora 6.0 MiB texlive-modes noarch 12:svn77365-12.fc45 fedora 380.3 KiB texlive-mptopdf noarch 12:svn78010-113.fc45 fedora 151.3 KiB texlive-multido noarch 12:svn77682-5.fc45 fedora 163.1 KiB texlive-multirow noarch 12:svn77682-7.fc45 fedora 652.7 KiB texlive-na-position noarch 12:svn55559-11.fc45 fedora 116.6 KiB texlive-natbib noarch 12:svn77682-5.fc45 fedora 622.8 KiB texlive-ncctools noarch 12:svn51810-7.fc45 fedora 3.1 MiB texlive-ncntrsbk noarch 12:svn77161-9.fc45 fedora 937.1 KiB texlive-newfloat noarch 12:svn77682-4.fc45 fedora 234.8 KiB texlive-norasi-c90 noarch 12:svn60831-7.fc45 fedora 44.5 KiB texlive-notoccite noarch 12:svn77682-7.fc45 fedora 231.7 KiB texlive-ntgclass noarch 12:svn77239-4.fc45 fedora 2.4 MiB texlive-ntheorem noarch 12:svn77682-7.fc45 fedora 531.2 KiB texlive-oberdiek noarch 12:svn78315-113.fc45 fedora 11.2 MiB texlive-overpic noarch 12:svn77682-7.fc45 fedora 420.9 KiB texlive-pagesel noarch 12:svn77682-5.fc45 fedora 354.7 KiB texlive-palatino noarch 12:svn77161-9.fc45 fedora 1.1 MiB texlive-paralist noarch 12:svn77682-7.fc45 fedora 251.9 KiB texlive-parallel noarch 12:svn77682-8.fc45 fedora 177.1 KiB texlive-parskip noarch 12:svn77682-4.fc45 fedora 422.1 KiB texlive-passivetex noarch 12:svn69742-7.fc45 fedora 294.3 KiB texlive-pdfcol noarch 12:svn64469-7.fc45 fedora 345.6 KiB texlive-pdfcolfoot noarch 12:svn77682-4.fc45 fedora 335.8 KiB texlive-pdfcolmk noarch 12:svn78793-7.fc45 fedora 19.6 KiB texlive-pdfescape noarch 12:svn77682-5.fc45 fedora 375.9 KiB texlive-pdflscape noarch 12:svn77682-4.fc45 fedora 341.8 KiB texlive-pdfmanagement noarch 12:svn78778-5.fc45 fedora 6.5 MiB texlive-pdfpages noarch 12:svn78558-4.fc45 fedora 324.7 KiB texlive-pdftex ppc64le 12:svn77868-113.fc45 fedora 7.3 MiB texlive-pdftexcmds noarch 12:svn77682-5.fc45 fedora 423.9 KiB texlive-perltex noarch 12:svn73044-113.fc45 fedora 466.0 KiB texlive-pgf noarch 12:svn78101-4.fc45 fedora 24.8 MiB texlive-philokalia noarch 12:svn45356-11.fc45 fedora 239.8 KiB texlive-placeins noarch 12:svn77682-7.fc45 fedora 258.8 KiB texlive-plain noarch 12:svn75712-12.fc45 fedora 109.4 KiB texlive-platex noarch 12:svn77830-6.fc45 fedora 2.5 MiB texlive-platex-tools noarch 12:svn72097-6.fc45 fedora 649.0 KiB texlive-plautopatch noarch 12:svn77682-6.fc45 fedora 181.2 KiB texlive-polyglossia noarch 12:svn78740-4.fc45 fedora 1.4 MiB texlive-psfrag noarch 12:svn15878-4.fc45 fedora 124.7 KiB texlive-pslatex noarch 12:svn67469-5.fc45 fedora 36.7 KiB texlive-psnfss noarch 12:svn77682-5.fc45 fedora 410.4 KiB texlive-pspicture noarch 12:svn15878-5.fc45 fedora 87.7 KiB texlive-pst-3d noarch 12:svn77682-3.fc45 fedora 192.4 KiB texlive-pst-calculate noarch 12:svn77682-3.fc45 fedora 65.5 KiB texlive-pst-coil noarch 12:svn77682-3.fc45 fedora 3.6 MiB texlive-pst-eps noarch 12:svn77682-3.fc45 fedora 151.5 KiB texlive-pst-fill noarch 12:svn77682-3.fc45 fedora 1.0 MiB texlive-pst-grad noarch 12:svn77682-3.fc45 fedora 298.6 KiB texlive-pst-math noarch 12:svn77682-3.fc45 fedora 305.0 KiB texlive-pst-node noarch 12:svn77682-3.fc45 fedora 1.0 MiB texlive-pst-ovl noarch 12:svn77682-3.fc45 fedora 68.5 KiB texlive-pst-pdf noarch 12:svn77682-113.fc45 fedora 1.3 MiB texlive-pst-plot noarch 12:svn77682-3.fc45 fedora 2.3 MiB texlive-pst-text noarch 12:svn77682-3.fc45 fedora 253.6 KiB texlive-pst-tree noarch 12:svn77682-3.fc45 fedora 279.7 KiB texlive-pstricks noarch 12:svn78101-3.fc45 fedora 13.8 MiB texlive-pstricks-add noarch 12:svn77682-3.fc45 fedora 18.0 MiB texlive-ptex ppc64le 12:svn77830-113.fc45 fedora 1.3 MiB texlive-ptex-base noarch 12:svn64072-6.fc45 fedora 42.3 KiB texlive-ptex-fonts noarch 12:svn64330-6.fc45 fedora 4.8 MiB texlive-ptext noarch 12:svn77682-11.fc45 fedora 164.5 KiB texlive-pxfonts noarch 12:svn77682-9.fc45 fedora 1.4 MiB texlive-ragged2e noarch 12:svn77682-4.fc45 fedora 798.8 KiB texlive-rcs noarch 12:svn15878-4.fc45 fedora 239.2 KiB texlive-realscripts noarch 12:svn77682-7.fc45 fedora 129.2 KiB texlive-refcount noarch 12:svn77682-5.fc45 fedora 348.0 KiB texlive-regexpatch noarch 12:svn77682-7.fc45 fedora 569.4 KiB texlive-rerunfilecheck noarch 12:svn77682-5.fc45 fedora 360.6 KiB texlive-rsfs noarch 12:svn15878-9.fc45 fedora 102.3 KiB texlive-sansmath noarch 12:svn77682-4.fc45 fedora 196.5 KiB texlive-sansmathaccent noarch 12:svn77682-7.fc45 fedora 219.2 KiB texlive-sauerj noarch 12:svn15878-7.fc45 fedora 1.0 MiB texlive-section noarch 12:svn20180-4.fc45 fedora 410.6 KiB texlive-sectsty noarch 12:svn77682-7.fc45 fedora 267.6 KiB texlive-seminar noarch 12:svn77682-4.fc45 fedora 780.1 KiB texlive-sepnum noarch 12:svn20186-4.fc45 fedora 371.6 KiB texlive-setspace noarch 12:svn77682-4.fc45 fedora 236.1 KiB texlive-showexpl noarch 12:svn77682-7.fc45 fedora 644.6 KiB texlive-shtthesis noarch 12:svn62441-11.fc45 fedora 2.2 MiB texlive-simple-resume-cv noarch 12:svn43057-11.fc45 fedora 118.1 KiB texlive-simple-thesis-dissertation noarch 12:svn43058-11.fc45 fedora 267.8 KiB texlive-siunitx noarch 12:svn78712-3.fc45 fedora 1.5 MiB texlive-stmaryrd noarch 12:svn77682-3.fc45 fedora 437.7 KiB texlive-stringenc noarch 12:svn77682-5.fc45 fedora 1.0 MiB texlive-sttools noarch 12:svn77682-7.fc45 fedora 788.2 KiB texlive-subfig noarch 12:svn77682-4.fc45 fedora 751.8 KiB texlive-subfigure noarch 12:svn15878-7.fc45 fedora 443.1 KiB texlive-svn-prov noarch 12:svn77682-7.fc45 fedora 317.8 KiB texlive-symbol noarch 12:svn77161-9.fc45 fedora 83.6 KiB texlive-t2 noarch 12:svn47870-9.fc45 fedora 445.9 KiB texlive-tagpdf noarch 12:svn78799-5.fc45 fedora 3.8 MiB texlive-tetragonos noarch 12:svn49732-11.fc45 fedora 1.6 MiB texlive-tex ppc64le 12:svn77830-113.fc45 fedora 524.9 KiB texlive-tex-gyre noarch 12:svn68624-9.fc45 fedora 37.6 MiB texlive-tex-gyre-math noarch 12:svn41264-9.fc45 fedora 3.2 MiB texlive-tex-ini-files noarch 12:svn78524-12.fc45 fedora 13.8 KiB texlive-texlive-common noarch 12:svn78660-12.fc45 fedora 677.7 KiB texlive-texlive-en noarch 12:svn78030-113.fc45 fedora 6.2 MiB texlive-texlive-msg-translations noarch 12:svn78661-12.fc45 fedora 1.4 MiB texlive-texlive-scripts noarch 12:svn78361-113.fc45 fedora 340.4 KiB texlive-texlive-scripts-extra noarch 12:svn78162-113.fc45 fedora 106.4 KiB texlive-texlive.infra noarch 12:svn78313-113.fc45 fedora 1.0 MiB texlive-textcase noarch 12:svn77682-4.fc45 fedora 248.8 KiB texlive-thumbpdf noarch 12:svn62518-113.fc45 fedora 97.0 KiB texlive-tikz-cd noarch 12:svn77682-4.fc45 fedora 357.0 KiB texlive-times noarch 12:svn77161-9.fc45 fedora 994.3 KiB texlive-tipa noarch 12:svn77682-9.fc45 fedora 6.5 MiB texlive-titlesec noarch 12:svn77682-7.fc45 fedora 860.5 KiB texlive-tkz-tab noarch 12:svn66115-4.fc45 fedora 542.0 KiB texlive-tocvsec2 noarch 12:svn77682-7.fc45 fedora 322.2 KiB texlive-tools noarch 12:svn76708-5.fc45 fedora 8.4 MiB texlive-translator noarch 12:svn77682-4.fc45 fedora 500.0 KiB texlive-transparent noarch 12:svn77682-7.fc45 fedora 301.1 KiB texlive-trimspaces noarch 12:svn77682-7.fc45 fedora 191.0 KiB texlive-ttfutils ppc64le 12:svn77830-113.fc45 fedora 1.4 MiB texlive-txfonts noarch 12:svn77682-9.fc45 fedora 2.4 MiB texlive-typehtml noarch 12:svn17134-4.fc45 fedora 224.2 KiB texlive-ucharcat noarch 12:svn78415-4.fc45 fedora 175.8 KiB texlive-ucharclasses noarch 12:svn77682-11.fc45 fedora 201.6 KiB texlive-uhc noarch 12:svn16791-6.fc45 fedora 7.4 MiB texlive-ulem noarch 12:svn77682-5.fc45 fedora 186.8 KiB texlive-underscore noarch 12:svn77682-4.fc45 fedora 287.3 KiB texlive-undolabl noarch 12:svn77682-7.fc45 fedora 389.9 KiB texlive-unibidi-lua noarch 12:svn78655-4.fc45 fedora 780.7 KiB texlive-unicode-bidi noarch 12:svn77682-11.fc45 fedora 22.0 KiB texlive-unicode-data noarch 12:svn76413-12.fc45 fedora 3.4 MiB texlive-unicode-math noarch 12:svn78251-4.fc45 fedora 3.8 MiB texlive-unimath-plain-xetex noarch 12:svn72498-11.fc45 fedora 1.2 MiB texlive-uniquecounter noarch 12:svn77682-5.fc45 fedora 312.0 KiB texlive-unisugar noarch 12:svn22357-11.fc45 fedora 538.3 KiB texlive-uptex ppc64le 12:svn77830-113.fc45 fedora 3.1 MiB texlive-uptex-base noarch 12:svn77840-6.fc45 fedora 666.7 KiB texlive-uptex-fonts noarch 12:svn74119-6.fc45 fedora 15.7 MiB texlive-url noarch 12:svn77682-5.fc45 fedora 299.5 KiB texlive-utopia noarch 12:svn77682-9.fc45 fedora 546.6 KiB texlive-varwidth noarch 12:svn77682-7.fc45 fedora 64.2 KiB texlive-wadalab noarch 12:svn42428-6.fc45 fedora 21.1 MiB texlive-was noarch 12:svn64691-7.fc45 fedora 364.4 KiB texlive-wasy noarch 12:svn53533-9.fc45 fedora 469.9 KiB texlive-wasy-type1 noarch 12:svn53534-9.fc45 fedora 332.4 KiB texlive-wasysym noarch 12:svn77682-9.fc45 fedora 194.0 KiB texlive-xcjk2uni noarch 12:svn54958-7.fc45 fedora 2.1 MiB texlive-xcolor noarch 12:svn77682-4.fc45 fedora 1.1 MiB texlive-xdvi ppc64le 12:svn62387-113.fc45 fedora 890.4 KiB texlive-xebaposter noarch 12:svn75290-11.fc45 fedora 1.0 MiB texlive-xechangebar noarch 12:svn77682-11.fc45 fedora 65.1 KiB texlive-xecjk noarch 12:svn77682-11.fc45 fedora 3.1 MiB texlive-xecolor noarch 12:svn77682-11.fc45 fedora 26.0 KiB texlive-xecyr noarch 12:svn77682-11.fc45 fedora 810.8 KiB texlive-xeindex noarch 12:svn77682-11.fc45 fedora 113.6 KiB texlive-xesearch noarch 12:svn77682-11.fc45 fedora 725.9 KiB texlive-xespotcolor noarch 12:svn77682-11.fc45 fedora 180.7 KiB texlive-xetex ppc64le 12:svn77830-113.fc45 fedora 2.6 MiB texlive-xetex-devanagari noarch 12:svn34296-11.fc45 fedora 1.1 MiB texlive-xetex-itrans noarch 12:svn55475-11.fc45 fedora 1.1 MiB texlive-xetex-pstricks noarch 12:svn17055-11.fc45 fedora 2.0 KiB texlive-xetex-tibetan noarch 12:svn28847-11.fc45 fedora 1.1 MiB texlive-xetexconfig noarch 12:svn45845-11.fc45 fedora 19.0 KiB texlive-xetexfontinfo noarch 12:svn15878-11.fc45 fedora 17.7 KiB texlive-xetexko noarch 12:svn77682-11.fc45 fedora 588.1 KiB texlive-xetexref noarch 12:svn73885-11.fc45 fedora 229.6 KiB texlive-xevlna noarch 12:svn77682-11.fc45 fedora 94.7 KiB texlive-xfrac noarch 12:svn77682-4.fc45 fedora 678.0 KiB texlive-xifthen noarch 12:svn77682-7.fc45 fedora 507.7 KiB texlive-xits noarch 12:svn55730-7.fc45 fedora 1.4 MiB texlive-xkeyval noarch 12:svn77682-4.fc45 fedora 677.0 KiB texlive-xltxtra noarch 12:svn77682-4.fc45 fedora 125.5 KiB texlive-xmltex noarch 12:svn76924-113.fc45 fedora 155.3 KiB texlive-xpatch noarch 12:svn77682-7.fc45 fedora 487.4 KiB texlive-xpinyin noarch 12:svn77682-9.fc45 fedora 1.4 MiB texlive-xstring noarch 12:svn77682-7.fc45 fedora 898.5 KiB texlive-xunicode noarch 12:svn77682-4.fc45 fedora 220.0 KiB texlive-xurl noarch 12:svn77682-7.fc45 fedora 75.9 KiB texlive-zapfchan noarch 12:svn77161-9.fc45 fedora 183.4 KiB texlive-zapfding noarch 12:svn77161-9.fc45 fedora 84.8 KiB texlive-zbmath-review-template noarch 12:svn59693-11.fc45 fedora 283.2 KiB texlive-zhmetrics noarch 12:svn22207-9.fc45 fedora 5.5 MiB texlive-zhmetrics-uptex noarch 12:svn40728-9.fc45 fedora 7.5 MiB texlive-zhnumber noarch 12:svn77682-9.fc45 fedora 366.6 KiB texlive-zref noarch 12:svn78317-7.fc45 fedora 799.8 KiB urw-base35-bookman-fonts noarch 0:20200910-29.fc45 fedora 1.4 MiB urw-base35-c059-fonts noarch 0:20200910-29.fc45 fedora 1.4 MiB urw-base35-d050000l-fonts noarch 0:20200910-29.fc45 fedora 84.3 KiB urw-base35-fonts noarch 0:20200910-29.fc45 fedora 5.3 KiB urw-base35-fonts-common noarch 0:20200910-29.fc45 fedora 37.4 KiB urw-base35-gothic-fonts noarch 0:20200910-29.fc45 fedora 1.2 MiB urw-base35-nimbus-mono-ps-fonts noarch 0:20200910-29.fc45 fedora 1.0 MiB urw-base35-nimbus-roman-fonts noarch 0:20200910-29.fc45 fedora 1.4 MiB urw-base35-nimbus-sans-fonts noarch 0:20200910-29.fc45 fedora 2.4 MiB urw-base35-p052-fonts noarch 0:20200910-29.fc45 fedora 1.5 MiB urw-base35-standard-symbols-ps-fonts noarch 0:20200910-29.fc45 fedora 64.9 KiB urw-base35-z003-fonts noarch 0:20200910-29.fc45 fedora 390.8 KiB xdg-utils noarch 0:1.2.1-6.fc45 fedora 346.3 KiB xml-common noarch 0:0.6.3-69.fc45 fedora 78.4 KiB xpdf-libs ppc64le 1:4.06-3.fc45 fedora 2.2 MiB zziplib ppc64le 0:0.13.78-6.fc45 copr_base 409.5 KiB Transaction Summary: Installing: 748 packages Total size of inbound packages is 662 MiB. Need to download 662 MiB. After this operation, 1 GiB extra will be used (install 1 GiB, remove 0 B). [ 1/748] systemd-rpm-macros-0:261.2-1. 100% | 1.9 MiB/s | 19.8 KiB | 00m00s [ 2/748] sgml-common-0:0.6.3-69.fc45.n 100% | 9.9 MiB/s | 60.7 KiB | 00m00s [ 3/748] texlive-enumitem-12:svn77682- 100% | 15.1 MiB/s | 185.9 KiB | 00m00s [ 4/748] libssh-devel-0:0.12.2-1.fc45. 100% | 11.5 MiB/s | 47.2 KiB | 00m00s [ 5/748] linuxdoc-tools-0:0.9.85-4.fc4 100% | 753.5 KiB/s | 159.0 KiB | 00m00s [ 6/748] flex-0:2.6.4-25.fc45.ppc64le 100% | 1.3 MiB/s | 306.2 KiB | 00m00s [ 7/748] ncurses-devel-0:6.6-3.fc45.pp 100% | 29.6 MiB/s | 605.7 KiB | 00m00s [ 8/748] perl-FindBin-0:1.54-527.fc45. 100% | 2.7 MiB/s | 13.9 KiB | 00m00s [ 9/748] readline-devel-0:8.3-6.fc45.p 100% | 16.4 MiB/s | 218.8 KiB | 00m00s [ 10/748] texlive-kpathsea-12:svn77861- 100% | 37.6 MiB/s | 1.1 MiB | 00m00s [ 11/748] cmake-filesystem-0:4.3.0-5.fc 100% | 3.6 MiB/s | 14.8 KiB | 00m00s [ 12/748] texlive-base-12:20260301-113. 100% | 44.8 MiB/s | 2.9 MiB | 00m00s [ 13/748] krb5-devel-0:1.22.2-9.fc45.pp 100% | 5.8 MiB/s | 143.2 KiB | 00m00s [ 14/748] bison-0:3.8.2-16.fc45.ppc64le 100% | 3.1 MiB/s | 1.0 MiB | 00m00s [ 15/748] perl-Exporter-0:5.79-527.fc45 100% | 3.0 MiB/s | 30.6 KiB | 00m00s [ 16/748] perl-File-Temp-1:0.231.200-52 100% | 14.5 MiB/s | 59.3 KiB | 00m00s [ 17/748] openjade-0:1.3.2-86.fc45.ppc6 100% | 35.9 MiB/s | 919.9 KiB | 00m00s [ 18/748] texlive-collection-latexrecom 100% | 683.4 KiB/s | 8.9 KiB | 00m00s [ 19/748] texlive-texlive-scripts-extra 100% | 5.7 MiB/s | 64.1 KiB | 00m00s [ 20/748] perl-Carp-0:1.54-527.fc45.noa 100% | 9.3 MiB/s | 28.6 KiB | 00m00s [ 21/748] ncurses-c++-libs-0:6.6-3.fc45 100% | 7.6 MiB/s | 39.0 KiB | 00m00s [ 22/748] libkadm5-0:1.22.2-9.fc45.ppc6 100% | 20.9 MiB/s | 85.6 KiB | 00m00s [ 23/748] texlive-lib-12:20260301-113.f 100% | 23.9 MiB/s | 269.3 KiB | 00m00s [ 24/748] texlive-texlive-scripts-12:sv 100% | 11.1 MiB/s | 125.0 KiB | 00m00s [ 25/748] libverto-devel-0:0.3.2-13.fc4 100% | 3.5 MiB/s | 14.2 KiB | 00m00s [ 26/748] perl-File-Path-0:2.18-527.fc4 100% | 11.3 MiB/s | 34.8 KiB | 00m00s [ 27/748] perl-Scalar-List-Utils-5:1.70 100% | 15.1 MiB/s | 77.6 KiB | 00m00s [ 28/748] opensp-0:1.5.2-51.fc45.ppc64l 100% | 56.5 MiB/s | 926.1 KiB | 00m00s [ 29/748] perl-constant-0:1.33-528.fc45 100% | 2.0 MiB/s | 22.7 KiB | 00m00s [ 30/748] perl-parent-1:0.244-527.fc45. 100% | 1.6 MiB/s | 14.7 KiB | 00m00s [ 31/748] texlive-anysize-12:svn77682-4 100% | 3.9 MiB/s | 43.7 KiB | 00m00s [ 32/748] texlive-attachfile2-12:svn776 100% | 26.9 MiB/s | 469.0 KiB | 00m00s [ 33/748] texlive-booktabs-12:svn77682- 100% | 19.7 MiB/s | 302.7 KiB | 00m00s [ 34/748] texlive-beamer-12:svn78101-4. 100% | 42.8 MiB/s | 2.6 MiB | 00m00s [ 35/748] texlive-breqn-12:svn77682-4.f 100% | 19.3 MiB/s | 1.0 MiB | 00m00s [ 36/748] texlive-cite-12:svn77682-4.fc 100% | 16.9 MiB/s | 242.7 KiB | 00m00s [ 37/748] texlive-caption-12:svn77682-4 100% | 14.2 MiB/s | 816.5 KiB | 00m00s [ 38/748] texlive-cmap-12:svn77682-4.fc 100% | 1.9 MiB/s | 23.6 KiB | 00m00s [ 39/748] texlive-collection-latex-12:s 100% | 1.3 MiB/s | 9.0 KiB | 00m00s [ 40/748] texlive-crop-12:svn77682-4.fc 100% | 29.8 MiB/s | 335.2 KiB | 00m00s [ 41/748] texlive-eso-pic-12:svn77682-4 100% | 20.8 MiB/s | 298.7 KiB | 00m00s [ 42/748] texlive-ctable-12:svn77682-4. 100% | 26.7 MiB/s | 602.0 KiB | 00m00s [ 43/748] texlive-euenc-12:svn19795-4.f 100% | 11.2 MiB/s | 160.7 KiB | 00m00s [ 44/748] texlive-euler-12:svn77682-4.f 100% | 20.1 MiB/s | 247.2 KiB | 00m00s [ 45/748] texlive-everyshi-12:svn77682- 100% | 12.8 MiB/s | 144.2 KiB | 00m00s [ 46/748] texlive-extsizes-12:svn78101- 100% | 17.6 MiB/s | 216.5 KiB | 00m00s [ 47/748] texlive-everysel-12:svn57489- 100% | 20.7 MiB/s | 445.7 KiB | 00m00s [ 48/748] texlive-fancybox-12:svn77682- 100% | 23.7 MiB/s | 291.1 KiB | 00m00s [ 49/748] texlive-fancyref-12:svn77682- 100% | 10.1 MiB/s | 113.7 KiB | 00m00s [ 50/748] texlive-fancyvrb-12:svn78721- 100% | 16.3 MiB/s | 200.2 KiB | 00m00s [ 51/748] texlive-float-12:svn77682-4.f 100% | 15.5 MiB/s | 126.7 KiB | 00m00s [ 52/748] texlive-filehook-12:svn77682- 100% | 24.0 MiB/s | 319.6 KiB | 00m00s [ 53/748] texlive-footnotehyper-12:svn7 100% | 10.7 MiB/s | 98.8 KiB | 00m00s [ 54/748] texlive-fp-12:svn77682-4.fc45 100% | 22.0 MiB/s | 247.3 KiB | 00m00s [ 55/748] texlive-fontspec-12:svn77682- 100% | 37.1 MiB/s | 1.1 MiB | 00m00s [ 56/748] texlive-grffile-12:svn78101-4 100% | 15.2 MiB/s | 357.6 KiB | 00m00s [ 57/748] texlive-hologo-12:svn78580-4. 100% | 23.0 MiB/s | 589.8 KiB | 00m00s [ 58/748] texlive-infwarerr-12:svn77682 100% | 25.9 MiB/s | 292.3 KiB | 00m00s [ 59/748] texlive-index-12:svn77682-4.f 100% | 14.7 MiB/s | 301.0 KiB | 00m00s [ 60/748] texlive-jknapltx-12:svn19440- 100% | 3.5 MiB/s | 28.9 KiB | 00m00s [ 61/748] texlive-latexbug-12:svn78389- 100% | 13.5 MiB/s | 235.3 KiB | 00m00s [ 62/748] texlive-l3experimental-12:svn 100% | 34.2 MiB/s | 1.4 MiB | 00m00s [ 63/748] texlive-lineno-12:svn78315-4. 100% | 24.3 MiB/s | 797.2 KiB | 00m00s [ 64/748] texlive-ltx-talk-12:svn78710- 100% | 27.8 MiB/s | 881.9 KiB | 00m00s [ 65/748] texlive-listings-12:svn77682- 100% | 38.0 MiB/s | 2.5 MiB | 00m00s [ 66/748] texlive-lua-unicode-math-12:s 100% | 5.8 MiB/s | 160.1 KiB | 00m00s [ 67/748] texlive-mathspec-12:svn77682- 100% | 14.3 MiB/s | 190.9 KiB | 00m00s [ 68/748] texlive-koma-script-12:svn775 100% | 37.1 MiB/s | 6.7 MiB | 00m00s [ 69/748] texlive-mathtools-12:svn78251 100% | 14.8 MiB/s | 1.1 MiB | 00m00s [ 70/748] texlive-mdwtools-12:svn15878- 100% | 34.0 MiB/s | 1.6 MiB | 00m00s [ 71/748] texlive-lwarp-12:svn78111-113 100% | 24.0 MiB/s | 3.4 MiB | 00m00s [ 72/748] texlive-metalogo-12:svn77682- 100% | 3.2 MiB/s | 92.6 KiB | 00m00s [ 73/748] texlive-newfloat-12:svn77682- 100% | 16.7 MiB/s | 136.7 KiB | 00m00s [ 74/748] texlive-memoir-12:svn77682-4. 100% | 28.7 MiB/s | 3.0 MiB | 00m00s [ 75/748] texlive-ntgclass-12:svn77239- 100% | 29.2 MiB/s | 1.8 MiB | 00m00s [ 76/748] texlive-microtype-12:svn78228 100% | 26.8 MiB/s | 2.5 MiB | 00m00s [ 77/748] texlive-parskip-12:svn77682-4 100% | 6.9 MiB/s | 320.0 KiB | 00m00s [ 78/748] texlive-pdfcolfoot-12:svn7768 100% | 11.9 MiB/s | 316.5 KiB | 00m00s [ 79/748] texlive-pdflscape-12:svn77682 100% | 24.0 MiB/s | 320.0 KiB | 00m00s [ 80/748] texlive-pdfpages-12:svn78558- 100% | 14.6 MiB/s | 209.9 KiB | 00m00s [ 81/748] texlive-polyglossia-12:svn787 100% | 35.4 MiB/s | 687.8 KiB | 00m00s [ 82/748] texlive-psfrag-12:svn15878-4. 100% | 5.3 MiB/s | 81.6 KiB | 00m00s [ 83/748] texlive-ragged2e-12:svn77682- 100% | 31.9 MiB/s | 719.1 KiB | 00m00s [ 84/748] texlive-rcs-12:svn15878-4.fc4 100% | 9.1 MiB/s | 139.9 KiB | 00m00s [ 85/748] texlive-sansmath-12:svn77682- 100% | 12.2 MiB/s | 188.1 KiB | 00m00s [ 86/748] texlive-seminar-12:svn77682-4 100% | 26.9 MiB/s | 386.1 KiB | 00m00s [ 87/748] texlive-section-12:svn20180-4 100% | 17.1 MiB/s | 367.6 KiB | 00m00s [ 88/748] texlive-sepnum-12:svn20186-4. 100% | 16.7 MiB/s | 360.0 KiB | 00m00s [ 89/748] texlive-setspace-12:svn77682- 100% | 17.3 MiB/s | 212.4 KiB | 00m00s [ 90/748] texlive-subfig-12:svn77682-4. 100% | 30.4 MiB/s | 466.9 KiB | 00m00s [ 91/748] texlive-thumbpdf-12:svn62518- 100% | 4.7 MiB/s | 43.2 KiB | 00m00s [ 92/748] texlive-textcase-12:svn77682- 100% | 14.4 MiB/s | 235.3 KiB | 00m00s [ 93/748] texlive-translator-12:svn7768 100% | 19.2 MiB/s | 294.8 KiB | 00m00s [ 94/748] texlive-typehtml-12:svn17134- 100% | 11.2 MiB/s | 172.3 KiB | 00m00s [ 95/748] texlive-ucharcat-12:svn78415- 100% | 12.8 MiB/s | 170.1 KiB | 00m00s [ 96/748] texlive-underscore-12:svn7768 100% | 22.7 MiB/s | 256.2 KiB | 00m00s [ 97/748] texlive-xcolor-12:svn77682-4. 100% | 29.6 MiB/s | 941.2 KiB | 00m00s [ 98/748] texlive-xfrac-12:svn77682-4.f 100% | 23.1 MiB/s | 638.6 KiB | 00m00s [ 99/748] texlive-xkeyval-12:svn77682-4 100% | 31.8 MiB/s | 586.2 KiB | 00m00s [100/748] texlive-xltxtra-12:svn77682-4 100% | 9.3 MiB/s | 114.8 KiB | 00m00s [101/748] texlive-xunicode-12:svn77682- 100% | 4.5 MiB/s | 41.8 KiB | 00m00s [102/748] texlive-texlive.infra-12:svn7 100% | 29.6 MiB/s | 303.1 KiB | 00m00s [103/748] texlive-unicode-math-12:svn78 100% | 35.5 MiB/s | 3.2 MiB | 00m00s [104/748] perl-Pod-Usage-4:2.05-527.fc4 100% | 1.5 MiB/s | 40.4 KiB | 00m00s [105/748] perl-Getopt-Long-1:2.58-527.f 100% | 2.0 MiB/s | 63.2 KiB | 00m00s [106/748] texlive-gsftopk-12:svn52851-1 100% | 9.4 MiB/s | 38.4 KiB | 00m00s [107/748] perl-Digest-MD5-0:2.59-527.fc 100% | 8.7 MiB/s | 35.5 KiB | 00m00s [108/748] texlive-hycolor-12:svn77682-5 100% | 33.9 MiB/s | 381.4 KiB | 00m00s [109/748] perl-libs-4:5.44.0-527.fc45.p 100% | 39.7 MiB/s | 2.7 MiB | 00m00s [110/748] texlive-iftex-12:svn77682-12. 100% | 23.5 MiB/s | 240.7 KiB | 00m00s [111/748] texlive-luatex-12:svn78218-11 100% | 34.1 MiB/s | 4.0 MiB | 00m00s [112/748] texlive-kvoptions-12:svn77682 100% | 12.0 MiB/s | 491.1 KiB | 00m00s [113/748] texlive-hyperref-12:svn78811- 100% | 27.3 MiB/s | 3.5 MiB | 00m00s [114/748] texlive-ltxcmds-12:svn77682-5 100% | 10.0 MiB/s | 411.4 KiB | 00m00s [115/748] texlive-pdfescape-12:svn77682 100% | 9.5 MiB/s | 350.4 KiB | 00m00s [116/748] texlive-pdftexcmds-12:svn7768 100% | 27.1 MiB/s | 388.4 KiB | 00m00s [117/748] texlive-amscls-12:svn77682-5. 100% | 36.8 MiB/s | 1.1 MiB | 00m00s [118/748] texlive-atbegshi-12:svn77682- 100% | 26.5 MiB/s | 406.3 KiB | 00m00s [119/748] texlive-etoolbox-12:svn77682- 100% | 20.5 MiB/s | 251.8 KiB | 00m00s [120/748] texlive-amsmath-12:svn78101-5 100% | 34.0 MiB/s | 2.3 MiB | 00m00s [121/748] texlive-geometry-12:svn78315- 100% | 24.2 MiB/s | 866.9 KiB | 00m00s [122/748] texlive-sansmathaccent-12:svn 100% | 16.6 MiB/s | 187.0 KiB | 00m00s [123/748] texlive-amsfonts-12:svn77682- 100% | 33.4 MiB/s | 4.8 MiB | 00m00s [124/748] texlive-ae-12:svn15878-5.fc45 100% | 2.8 MiB/s | 119.2 KiB | 00m00s [125/748] texlive-atveryend-12:svn77682 100% | 35.2 MiB/s | 288.0 KiB | 00m00s [126/748] texlive-auxhook-12:svn77682-5 100% | 23.8 MiB/s | 292.2 KiB | 00m00s [127/748] texlive-babel-english-12:svn7 100% | 14.2 MiB/s | 145.3 KiB | 00m00s [128/748] texlive-babelbib-12:svn76790- 100% | 29.1 MiB/s | 1.2 MiB | 00m00s [129/748] texlive-babel-12:svn78713-5.f 100% | 25.7 MiB/s | 1.7 MiB | 00m00s [130/748] texlive-bigintcalc-12:svn7768 100% | 14.1 MiB/s | 463.4 KiB | 00m00s [131/748] texlive-bitset-12:svn77682-5. 100% | 30.2 MiB/s | 617.8 KiB | 00m00s [132/748] texlive-bookmark-12:svn77682- 100% | 24.8 MiB/s | 483.4 KiB | 00m00s [133/748] texlive-carlisle-12:svn59577- 100% | 7.2 MiB/s | 96.2 KiB | 00m00s [134/748] texlive-collection-basic-12:s 100% | 1.7 MiB/s | 8.9 KiB | 00m00s [135/748] texlive-epstopdf-pkg-12:svn77 100% | 27.2 MiB/s | 361.7 KiB | 00m00s [136/748] texlive-colortbl-12:svn77682- 100% | 25.0 MiB/s | 639.6 KiB | 00m00s [137/748] texlive-etexcmds-12:svn78101- 100% | 18.8 MiB/s | 307.6 KiB | 00m00s [138/748] texlive-firstaid-12:svn76740- 100% | 22.4 MiB/s | 298.3 KiB | 00m00s [139/748] texlive-fancyhdr-12:svn78348- 100% | 33.9 MiB/s | 1.3 MiB | 00m00s [140/748] texlive-fix2col-12:svn38770-5 100% | 12.1 MiB/s | 223.0 KiB | 00m00s [141/748] texlive-gettitlestring-12:svn 100% | 31.7 MiB/s | 324.7 KiB | 00m00s [142/748] texlive-graphics-cfg-12:svn41 100% | 1.5 MiB/s | 10.9 KiB | 00m00s [143/748] texlive-pgf-12:svn78101-4.fc4 100% | 30.6 MiB/s | 10.9 MiB | 00m00s [144/748] texlive-grfext-12:svn77682-5. 100% | 3.5 MiB/s | 314.9 KiB | 00m00s [145/748] texlive-hopatch-12:svn65491-5 100% | 28.9 MiB/s | 325.9 KiB | 00m00s [146/748] texlive-hypcap-12:svn77682-5. 100% | 24.4 MiB/s | 300.4 KiB | 00m00s [147/748] texlive-intcalc-12:svn77682-5 100% | 30.0 MiB/s | 429.5 KiB | 00m00s [148/748] texlive-kvdefinekeys-12:svn77 100% | 21.2 MiB/s | 303.5 KiB | 00m00s [149/748] texlive-graphics-12:svn78282- 100% | 16.8 MiB/s | 2.4 MiB | 00m00s [150/748] texlive-kvsetkeys-12:svn77682 100% | 11.7 MiB/s | 395.8 KiB | 00m00s [151/748] texlive-l3backend-12:svn78544 100% | 19.1 MiB/s | 862.7 KiB | 00m00s [152/748] texlive-latex-fonts-12:svn288 100% | 12.7 MiB/s | 52.2 KiB | 00m00s [153/748] texlive-l3packages-12:svn7663 100% | 28.1 MiB/s | 1.4 MiB | 00m00s [154/748] texlive-latex-lab-12:svn76739 100% | 32.6 MiB/s | 5.5 MiB | 00m00s [155/748] texlive-latexconfig-12:svn689 100% | 1.6 MiB/s | 16.7 KiB | 00m00s [156/748] texlive-letltxmacro-12:svn776 100% | 32.3 MiB/s | 297.4 KiB | 00m00s [157/748] texlive-ltxmisc-12:svn75878-5 100% | 4.5 MiB/s | 36.6 KiB | 00m00s [158/748] texlive-lua-uni-algos-12:svn7 100% | 11.2 MiB/s | 103.1 KiB | 00m00s [159/748] texlive-mfnfss-12:svn77682-5. 100% | 11.9 MiB/s | 452.1 KiB | 00m00s [160/748] texlive-mptopdf-12:svn78010-1 100% | 6.0 MiB/s | 55.0 KiB | 00m00s [161/748] texlive-l3kernel-12:svn78545- 100% | 30.5 MiB/s | 11.8 MiB | 00m00s [162/748] texlive-natbib-12:svn77682-5. 100% | 4.4 MiB/s | 442.1 KiB | 00m00s [163/748] texlive-pagesel-12:svn77682-5 100% | 20.6 MiB/s | 337.6 KiB | 00m00s [164/748] texlive-pdfmanagement-12:svn7 100% | 38.1 MiB/s | 4.5 MiB | 00m00s [165/748] texlive-pslatex-12:svn67469-5 100% | 4.5 MiB/s | 22.9 KiB | 00m00s [166/748] texlive-psnfss-12:svn77682-5. 100% | 23.8 MiB/s | 316.4 KiB | 00m00s [167/748] texlive-oberdiek-12:svn78315- 100% | 30.5 MiB/s | 7.1 MiB | 00m00s [168/748] texlive-pspicture-12:svn15878 100% | 877.8 KiB/s | 58.8 KiB | 00m00s [169/748] texlive-refcount-12:svn77682- 100% | 23.2 MiB/s | 332.4 KiB | 00m00s [170/748] texlive-rerunfilecheck-12:svn 100% | 23.5 MiB/s | 337.1 KiB | 00m00s [171/748] texlive-stringenc-12:svn77682 100% | 32.5 MiB/s | 699.9 KiB | 00m00s [172/748] texlive-tagpdf-12:svn78799-5. 100% | 33.1 MiB/s | 3.0 MiB | 00m00s [173/748] texlive-uniquecounter-12:svn7 100% | 26.4 MiB/s | 297.9 KiB | 00m00s [174/748] texlive-url-12:svn77682-5.fc4 100% | 22.7 MiB/s | 278.6 KiB | 00m00s [175/748] texlive-transparent-12:svn776 100% | 19.7 MiB/s | 282.8 KiB | 00m00s [176/748] texlive-tools-12:svn76708-5.f 100% | 33.5 MiB/s | 6.1 MiB | 00m00s [177/748] texlive-currfile-12:svn77682- 100% | 11.9 MiB/s | 194.4 KiB | 00m00s [178/748] texlive-pstricks-12:svn78101- 100% | 33.6 MiB/s | 10.9 MiB | 00m00s [179/748] texlive-latex-12:svn76924-113 100% | 27.5 MiB/s | 35.8 MiB | 00m01s [180/748] texlive-xpatch-12:svn77682-7. 100% | 27.1 MiB/s | 472.3 KiB | 00m00s [181/748] texlive-luaotfload-12:svn7432 100% | 4.3 MiB/s | 1.2 MiB | 00m00s [182/748] texlive-finstrut-12:svn21719- 100% | 10.8 MiB/s | 188.4 KiB | 00m00s [183/748] texlive-ltabptch-12:svn17533- 100% | 20.9 MiB/s | 277.9 KiB | 00m00s [184/748] texlive-algorithms-12:svn7810 100% | 24.2 MiB/s | 298.0 KiB | 00m00s [185/748] texlive-xurl-12:svn77682-7.fc 100% | 4.2 MiB/s | 64.5 KiB | 00m00s [186/748] texlive-pdfcol-12:svn64469-7. 100% | 18.6 MiB/s | 324.6 KiB | 00m00s [187/748] texlive-lm-12:svn77682-9.fc45 100% | 20.5 MiB/s | 14.4 MiB | 00m01s [188/748] texlive-luabidi-12:svn78654-7 100% | 12.5 MiB/s | 153.1 KiB | 00m00s [189/748] texlive-makecmds-12:svn77682- 100% | 12.6 MiB/s | 128.7 KiB | 00m00s [190/748] texlive-mnsymbol-12:svn18651- 100% | 21.0 MiB/s | 4.6 MiB | 00m00s [191/748] texlive-unibidi-lua-12:svn786 100% | 2.4 MiB/s | 83.5 KiB | 00m00s [192/748] texlive-pst-ovl-12:svn77682-3 100% | 9.1 MiB/s | 46.8 KiB | 00m00s [193/748] texlive-bidi-12:svn77682-7.fc 100% | 17.5 MiB/s | 4.0 MiB | 00m00s [194/748] texlive-chicago-12:svn77682-9 100% | 649.4 KiB/s | 19.5 KiB | 00m00s [195/748] texlive-footmisc-12:svn77682- 100% | 12.2 MiB/s | 561.7 KiB | 00m00s [196/748] texlive-lualatex-math-12:svn7 100% | 18.9 MiB/s | 212.5 KiB | 00m00s [197/748] texlive-pdfcolmk-12:svn78793- 100% | 3.2 MiB/s | 16.4 KiB | 00m00s [198/748] texlive-lm-math-12:svn67718-9 100% | 25.0 MiB/s | 538.4 KiB | 00m00s [199/748] texlive-realscripts-12:svn776 100% | 10.5 MiB/s | 118.2 KiB | 00m00s [200/748] perl-Text-Unidecode-0:1.30-29 100% | 25.3 MiB/s | 181.1 KiB | 00m00s [201/748] perl-XML-Parser-0:2.59-4.fc45 100% | 24.8 MiB/s | 254.3 KiB | 00m00s [202/748] perl-XML-XPath-0:1.49-2.fc45. 100% | 10.9 MiB/s | 88.9 KiB | 00m00s [203/748] perl-Text-ParseWords-0:3.31-5 100% | 5.3 MiB/s | 16.2 KiB | 00m00s [204/748] perl-Pod-Perldoc-0:3.28.01-52 100% | 20.7 MiB/s | 84.7 KiB | 00m00s [205/748] perl-podlators-1:6.1.0-2.fc45 100% | 32.1 MiB/s | 131.6 KiB | 00m00s [206/748] texlive-cm-12:svn57963-12.fc4 100% | 26.5 MiB/s | 326.2 KiB | 00m00s [207/748] texlive-etex-12:svn77830-12.f 100% | 20.9 MiB/s | 341.9 KiB | 00m00s [208/748] texlive-graphics-def-12:svn76 100% | 4.3 MiB/s | 26.5 KiB | 00m00s [209/748] texlive-hyphen-base-12:svn780 100% | 12.1 MiB/s | 37.1 KiB | 00m00s [210/748] texlive-knuth-lib-12:svn57963 100% | 16.4 MiB/s | 50.4 KiB | 00m00s [211/748] texlive-hyph-utf8-12:svn78069 100% | 26.3 MiB/s | 295.8 KiB | 00m00s [212/748] texlive-plain-12:svn75712-12. 100% | 10.2 MiB/s | 41.6 KiB | 00m00s [213/748] texlive-tex-ini-files-12:svn7 100% | 3.4 MiB/s | 17.4 KiB | 00m00s [214/748] texlive-unicode-data-12:svn76 100% | 28.1 MiB/s | 374.5 KiB | 00m00s [215/748] perl-Digest-0:1.20-527.fc45.n 100% | 12.1 MiB/s | 24.8 KiB | 00m00s [216/748] perl-Encode-4:3.24-527.fc45.p 100% | 34.9 MiB/s | 1.0 MiB | 00m00s [217/748] texlive-tipa-12:svn77682-9.fc 100% | 35.0 MiB/s | 5.0 MiB | 00m00s [218/748] texlive-ntheorem-12:svn77682- 100% | 8.6 MiB/s | 432.8 KiB | 00m00s [219/748] texlive-zapfding-12:svn77161- 100% | 6.9 MiB/s | 63.2 KiB | 00m00s [220/748] texlive-etex-pkg-12:svn77682- 100% | 5.1 MiB/s | 20.9 KiB | 00m00s [221/748] texlive-hyphen-english-12:svn 100% | 10.6 MiB/s | 54.5 KiB | 00m00s [222/748] texlive-colorprofiles-12:svn4 100% | 17.7 MiB/s | 145.0 KiB | 00m00s [223/748] texlive-bibtex-12:svn77830-11 100% | 28.0 MiB/s | 488.1 KiB | 00m00s [224/748] texlive-dvips-12:svn77830-113 100% | 32.1 MiB/s | 755.0 KiB | 00m00s [225/748] texlive-ec-12:svn25033-12.fc4 100% | 31.2 MiB/s | 735.9 KiB | 00m00s [226/748] texlive-dvipdfmx-12:svn77942- 100% | 36.1 MiB/s | 3.0 MiB | 00m00s [227/748] texlive-enctex-12:svn34957-12 100% | 9.0 MiB/s | 295.1 KiB | 00m00s [228/748] texlive-extractbb-12:svn77855 100% | 5.7 MiB/s | 29.2 KiB | 00m00s [229/748] texlive-minitoc-12:svn77682-7 100% | 27.8 MiB/s | 6.2 MiB | 00m00s [230/748] texlive-glyphlist-12:svn54074 100% | 858.4 KiB/s | 40.3 KiB | 00m00s [231/748] texlive-hyphenex-12:svn57387- 100% | 391.4 KiB/s | 17.6 KiB | 00m00s [232/748] texlive-ifplatform-12:svn7768 100% | 22.9 MiB/s | 163.8 KiB | 00m00s [233/748] texlive-knuth-local-12:svn579 100% | 4.7 MiB/s | 43.6 KiB | 00m00s [234/748] texlive-lua-alt-getopt-12:svn 100% | 1.5 MiB/s | 15.0 KiB | 00m00s [235/748] texlive-metafont-12:svn77830- 100% | 19.6 MiB/s | 261.3 KiB | 00m00s [236/748] texlive-makeindex-12:svn75712 100% | 21.2 MiB/s | 434.9 KiB | 00m00s [237/748] texlive-mflogo-12:svn77682-12 100% | 24.4 MiB/s | 249.5 KiB | 00m00s [238/748] texlive-mfware-12:svn77830-11 100% | 12.8 MiB/s | 104.5 KiB | 00m00s [239/748] texlive-modes-12:svn77365-12. 100% | 28.6 MiB/s | 293.2 KiB | 00m00s [240/748] texlive-luahbtex-12:svn77830- 100% | 31.4 MiB/s | 2.1 MiB | 00m00s [241/748] texlive-tex-12:svn77830-113.f 100% | 8.0 MiB/s | 221.3 KiB | 00m00s [242/748] texlive-texlive-common-12:svn 100% | 30.7 MiB/s | 503.0 KiB | 00m00s [243/748] texlive-texlive-msg-translati 100% | 21.0 MiB/s | 171.7 KiB | 00m00s [244/748] texlive-xdvi-12:svn62387-113. 100% | 27.2 MiB/s | 361.9 KiB | 00m00s [245/748] texlive-texlive-en-12:svn7803 100% | 31.8 MiB/s | 1.9 MiB | 00m00s [246/748] texlive-epstopdf-12:svn71782- 100% | 1.6 MiB/s | 34.7 KiB | 00m00s [247/748] texlive-pdftex-12:svn77868-11 100% | 28.0 MiB/s | 3.6 MiB | 00m00s [248/748] texlive-hypdoc-12:svn68661-7. 100% | 8.8 MiB/s | 334.4 KiB | 00m00s [249/748] texlive-beton-12:svn77682-7.f 100% | 7.4 MiB/s | 75.8 KiB | 00m00s [250/748] texlive-citeref-12:svn47407-9 100% | 8.2 MiB/s | 75.3 KiB | 00m00s [251/748] texlive-parallel-12:svn77682- 100% | 12.9 MiB/s | 131.8 KiB | 00m00s [252/748] texlive-sauerj-12:svn15878-7. 100% | 22.4 MiB/s | 550.9 KiB | 00m00s [253/748] texlive-zref-12:svn78317-7.fc 100% | 21.8 MiB/s | 669.5 KiB | 00m00s [254/748] texlive-symbol-12:svn77161-9. 100% | 5.8 MiB/s | 53.4 KiB | 00m00s [255/748] texlive-pst-3d-12:svn77682-3. 100% | 5.4 MiB/s | 116.5 KiB | 00m00s [256/748] texlive-multido-12:svn77682-5 100% | 4.4 MiB/s | 122.5 KiB | 00m00s [257/748] texlive-pst-calculate-12:svn7 100% | 7.9 MiB/s | 48.3 KiB | 00m00s [258/748] texlive-pst-eps-12:svn77682-3 100% | 7.7 MiB/s | 95.2 KiB | 00m00s [259/748] texlive-pst-fill-12:svn77682- 100% | 39.2 MiB/s | 842.5 KiB | 00m00s [260/748] texlive-pst-grad-12:svn77682- 100% | 24.9 MiB/s | 229.7 KiB | 00m00s [261/748] texlive-pst-coil-12:svn77682- 100% | 45.4 MiB/s | 3.5 MiB | 00m00s [262/748] texlive-pst-node-12:svn77682- 100% | 21.0 MiB/s | 731.3 KiB | 00m00s [263/748] texlive-pst-pdf-12:svn77682-1 100% | 42.5 MiB/s | 957.1 KiB | 00m00s [264/748] texlive-pst-text-12:svn77682- 100% | 22.6 MiB/s | 185.3 KiB | 00m00s [265/748] texlive-pst-plot-12:svn77682- 100% | 40.7 MiB/s | 1.3 MiB | 00m00s [266/748] texlive-pst-tree-12:svn77682- 100% | 15.4 MiB/s | 220.4 KiB | 00m00s [267/748] texlive-lualibs-12:svn78415-4 100% | 23.5 MiB/s | 241.0 KiB | 00m00s [268/748] texlive-luatexbase-12:svn7768 100% | 29.8 MiB/s | 274.8 KiB | 00m00s [269/748] texlive-changepage-12:svn7768 100% | 28.0 MiB/s | 286.5 KiB | 00m00s [270/748] texlive-paralist-12:svn77682- 100% | 27.0 MiB/s | 221.1 KiB | 00m00s [271/748] texlive-placeins-12:svn77682- 100% | 31.9 MiB/s | 261.0 KiB | 00m00s [272/748] texlive-showexpl-12:svn77682- 100% | 39.4 MiB/s | 605.1 KiB | 00m00s [273/748] texlive-titlesec-12:svn77682- 100% | 39.7 MiB/s | 690.8 KiB | 00m00s [274/748] texlive-xifthen-12:svn77682-7 100% | 33.8 MiB/s | 485.0 KiB | 00m00s [275/748] texlive-pstricks-add-12:svn77 100% | 62.2 MiB/s | 10.5 MiB | 00m00s [276/748] texlive-bigfoot-12:svn77682-7 100% | 10.5 MiB/s | 733.8 KiB | 00m00s [277/748] perl-File-ShareDir-0:1.118-16 100% | 4.1 MiB/s | 29.6 KiB | 00m00s [278/748] perl-URI-0:5.36-1.fc46.noarch 100% | 36.8 MiB/s | 150.9 KiB | 00m00s [279/748] perl-libwww-perl-0:6.83-2.fc4 100% | 34.3 MiB/s | 210.4 KiB | 00m00s [280/748] perl-Data-Dumper-0:2.192-528. 100% | 28.4 MiB/s | 58.2 KiB | 00m00s [281/748] perl-HTTP-Tiny-0:0.096-528.fc 100% | 28.5 MiB/s | 58.4 KiB | 00m00s [282/748] perl-Pod-Simple-1:3.48-527.fc 100% | 54.2 MiB/s | 222.0 KiB | 00m00s [283/748] perl-Term-ANSIColor-0:5.01-52 100% | 15.4 MiB/s | 47.3 KiB | 00m00s [284/748] perl-Term-Cap-0:1.18-527.fc45 100% | 7.1 MiB/s | 21.7 KiB | 00m00s [285/748] perl-MIME-Base64-0:3.16-527.f 100% | 14.9 MiB/s | 30.5 KiB | 00m00s [286/748] perl-interpreter-4:5.44.0-527 100% | 35.5 MiB/s | 72.7 KiB | 00m00s [287/748] perl-Storable-1:3.41-527.fc45 100% | 33.3 MiB/s | 102.2 KiB | 00m00s [288/748] texlive-notoccite-12:svn77682 100% | 45.0 MiB/s | 230.4 KiB | 00m00s [289/748] texlive-catchfile-12:svn77682 100% | 24.8 MiB/s | 305.1 KiB | 00m00s [290/748] texlive-xetex-12:svn77830-113 100% | 52.7 MiB/s | 1.4 MiB | 00m00s [291/748] rubypick-0:1.1.1-25.fc45.noar 100% | 3.2 MiB/s | 9.9 KiB | 00m00s [292/748] libX11-0:1.8.13-2.fc45.ppc64l 100% | 36.5 MiB/s | 710.9 KiB | 00m00s [293/748] texlive-dehyph-12:svn48599-8. 100% | 10.2 MiB/s | 62.7 KiB | 00m00s [294/748] libXi-0:1.8.3-2.fc45.ppc64le 100% | 14.1 MiB/s | 43.2 KiB | 00m00s [295/748] libXaw-0:1.0.16-6.fc45.ppc64l 100% | 25.2 MiB/s | 206.6 KiB | 00m00s [296/748] libXmu-0:1.2.1-6.fc45.ppc64le 100% | 16.6 MiB/s | 84.9 KiB | 00m00s [297/748] libXt-0:1.3.1-5.fc45.ppc64le 100% | 47.9 MiB/s | 196.0 KiB | 00m00s [298/748] texlive-makerobust-12:svn7810 100% | 15.7 MiB/s | 80.5 KiB | 00m00s [299/748] tex-preview-0:14.1.2-3.fc45.n 100% | 31.0 MiB/s | 349.1 KiB | 00m00s [300/748] texlive-siunitx-12:svn78712-3 100% | 40.3 MiB/s | 825.3 KiB | 00m00s [301/748] texlive-environ-12:svn77682-7 100% | 23.4 MiB/s | 168.1 KiB | 00m00s [302/748] texlive-luatex85-12:svn77682- 100% | 22.1 MiB/s | 181.4 KiB | 00m00s [303/748] texlive-pst-math-12:svn77682- 100% | 26.2 MiB/s | 241.5 KiB | 00m00s [304/748] texlive-ctablestack-12:svn781 100% | 19.8 MiB/s | 162.2 KiB | 00m00s [305/748] texlive-varwidth-12:svn77682- 100% | 8.6 MiB/s | 44.2 KiB | 00m00s [306/748] texlive-ifmtarg-12:svn77682-7 100% | 8.4 MiB/s | 51.4 KiB | 00m00s [307/748] perl-Class-Inspector-0:1.36-2 100% | 9.9 MiB/s | 30.4 KiB | 00m00s [308/748] perl-PathTools-0:3.95-527.fc4 100% | 14.4 MiB/s | 88.4 KiB | 00m00s [309/748] perl-MIME-Base32-0:1.303-26.f 100% | 10.0 MiB/s | 20.4 KiB | 00m00s [310/748] perl-Unicode-Normalize-0:1.32 100% | 18.0 MiB/s | 73.9 KiB | 00m00s [311/748] texlive-ncctools-12:svn51810- 100% | 53.0 MiB/s | 2.4 MiB | 00m00s [312/748] perl-libnet-0:3.15-528.fc45.n 100% | 8.4 MiB/s | 128.3 KiB | 00m00s [313/748] perl-Encode-Locale-0:1.05-34. 100% | 9.0 MiB/s | 18.3 KiB | 00m00s [314/748] perl-Data-Dump-0:1.25-15.fc45 100% | 10.6 MiB/s | 32.6 KiB | 00m00s [315/748] perl-Fcntl-0:1.20-527.fc45.pp 100% | 14.6 MiB/s | 29.8 KiB | 00m00s [316/748] perl-File-Listing-0:6.16-8.fc 100% | 11.9 MiB/s | 24.4 KiB | 00m00s [317/748] perl-HTML-Parser-0:3.85-3.fc4 100% | 31.1 MiB/s | 127.6 KiB | 00m00s [318/748] perl-HTTP-Cookies-0:6.12-1.fc 100% | 12.4 MiB/s | 38.0 KiB | 00m00s [319/748] perl-HTTP-Date-0:6.08-2.fc45. 100% | 8.3 MiB/s | 25.3 KiB | 00m00s [320/748] perl-HTTP-Message-0:7.04-1.fc 100% | 19.9 MiB/s | 101.7 KiB | 00m00s [321/748] perl-HTTP-Negotiate-0:6.01-43 100% | 9.4 MiB/s | 19.3 KiB | 00m00s [322/748] perl-IO-0:1.56-527.fc45.ppc64 100% | 40.7 MiB/s | 83.4 KiB | 00m00s [323/748] perl-LWP-MediaTypes-0:6.04-23 100% | 16.0 MiB/s | 32.8 KiB | 00m00s [324/748] perl-Module-Load-1:0.36-527.f 100% | 8.3 MiB/s | 17.0 KiB | 00m00s [325/748] perl-NTLM-0:1.09-43.fc45.noar 100% | 7.0 MiB/s | 21.5 KiB | 00m00s [326/748] perl-Net-HTTP-0:6.24-3.fc45.n 100% | 9.7 MiB/s | 39.7 KiB | 00m00s [327/748] perl-Try-Tiny-0:0.32-5.fc45.n 100% | 18.3 MiB/s | 37.5 KiB | 00m00s [328/748] perl-WWW-RobotRules-0:6.03-3. 100% | 13.0 MiB/s | 26.7 KiB | 00m00s [329/748] perl-Errno-0:1.39-527.fc45.pp 100% | 14.2 MiB/s | 14.6 KiB | 00m00s [330/748] perl-B-0:1.92-527.fc45.ppc64l 100% | 45.1 MiB/s | 184.9 KiB | 00m00s [331/748] perl-IO-Socket-SSL-0:2.099-2. 100% | 57.7 MiB/s | 236.2 KiB | 00m00s [332/748] perl-Socket-4:2.043-1.fc46.pp 100% | 27.4 MiB/s | 56.2 KiB | 00m00s [333/748] perl-Net-SSLeay-0:1.96-5.fc45 100% | 42.3 MiB/s | 390.1 KiB | 00m00s [334/748] perl-Time-HiRes-4:1.9780-527. 100% | 14.0 MiB/s | 57.5 KiB | 00m00s [335/748] perl-Time-Local-2:1.350-527.f 100% | 33.4 MiB/s | 34.2 KiB | 00m00s [336/748] perl-Pod-Escapes-1:1.07-527.f 100% | 19.1 MiB/s | 19.6 KiB | 00m00s [337/748] perl-Text-Tabs+Wrap-0:2024.00 100% | 21.0 MiB/s | 21.5 KiB | 00m00s [338/748] perl-POSIX-0:2.26-527.fc45.pp 100% | 37.9 MiB/s | 116.6 KiB | 00m00s [339/748] perl-I18N-Langinfo-0:0.24-527 100% | 12.4 MiB/s | 25.4 KiB | 00m00s [340/748] texlive-xetexconfig-12:svn458 100% | 4.7 MiB/s | 14.4 KiB | 00m00s [341/748] libX11-common-0:1.8.13-2.fc45 100% | 34.3 MiB/s | 175.5 KiB | 00m00s [342/748] libxcb-0:1.17.0-8.fc45.ppc64l 100% | 49.9 MiB/s | 255.7 KiB | 00m00s [343/748] ruby-0:4.0.6-37.fc45.ppc64le 100% | 14.0 MiB/s | 42.9 KiB | 00m00s [344/748] libXext-0:1.3.6-6.fc45.ppc64l 100% | 13.0 MiB/s | 40.1 KiB | 00m00s [345/748] libICE-0:1.1.2-5.fc45.ppc64le 100% | 27.8 MiB/s | 85.4 KiB | 00m00s [346/748] libSM-0:1.2.5-5.fc45.ppc64le 100% | 44.2 MiB/s | 45.3 KiB | 00m00s [347/748] texlive-trimspaces-12:svn7768 100% | 22.4 MiB/s | 160.6 KiB | 00m00s [348/748] texlive-xstring-12:svn77682-7 100% | 35.2 MiB/s | 577.5 KiB | 00m00s [349/748] perl-IO-Socket-IP-0:0.44-527. 100% | 20.5 MiB/s | 42.0 KiB | 00m00s [350/748] perl-HTML-Tagset-0:3.24-6.fc4 100% | 4.5 MiB/s | 18.2 KiB | 00m00s [351/748] perl-TimeDate-1:2.35-2.fc45.n 100% | 35.2 MiB/s | 108.0 KiB | 00m00s [352/748] perl-Clone-0:0.50-3.fc45.ppc6 100% | 17.8 MiB/s | 36.4 KiB | 00m00s [353/748] perl-Compress-Raw-Zlib-0:2.22 100% | 33.3 MiB/s | 68.3 KiB | 00m00s [354/748] perl-IO-Compress-0:2.224-1.fc 100% | 43.7 MiB/s | 313.1 KiB | 00m00s [355/748] perl-IO-HTML-0:1.004-17.fc45. 100% | 13.4 MiB/s | 27.4 KiB | 00m00s [356/748] mailcap-0:2.1.54-11.fc45.noar 100% | 16.5 MiB/s | 33.8 KiB | 00m00s [357/748] perl-Digest-HMAC-0:1.05-5.fc4 100% | 11.1 MiB/s | 22.8 KiB | 00m00s [358/748] libXau-0:1.0.12-5.fc45.ppc64l 100% | 16.6 MiB/s | 34.0 KiB | 00m00s [359/748] libicu-0:78.3-8.fc45.ppc64le 100% | 62.4 MiB/s | 11.2 MiB | 00m00s [360/748] perl-Compress-Raw-Bzip2-0:2.2 100% | 12.5 MiB/s | 38.3 KiB | 00m00s [361/748] perl-Digest-SHA-1:6.04-528.fc 100% | 20.8 MiB/s | 63.8 KiB | 00m00s [362/748] ruby-libs-0:4.0.6-37.fc45.ppc 100% | 32.2 MiB/s | 3.8 MiB | 00m00s [363/748] groff-0:1.24.1-2.fc45.ppc64le 100% | 28.4 MiB/s | 1.4 MiB | 00m00s [364/748] groff-base-0:1.24.1-2.fc45.pp 100% | 43.1 MiB/s | 1.2 MiB | 00m00s [365/748] perl-DirHandle-0:1.05-527.fc4 100% | 1.2 MiB/s | 12.1 KiB | 00m00s [366/748] perl-File-Basename-0:2.86-527 100% | 8.2 MiB/s | 16.8 KiB | 00m00s [367/748] perl-File-Copy-0:2.43-527.fc4 100% | 6.4 MiB/s | 19.7 KiB | 00m00s [368/748] perl-FileHandle-0:2.05-527.fc 100% | 7.4 MiB/s | 15.2 KiB | 00m00s [369/748] perl-base-0:2.27-527.fc45.noa 100% | 7.8 MiB/s | 15.9 KiB | 00m00s [370/748] perl-lib-0:0.65-527.fc45.ppc6 100% | 7.1 MiB/s | 14.5 KiB | 00m00s [371/748] perl-subs-0:1.04-527.fc45.noa 100% | 5.6 MiB/s | 11.4 KiB | 00m00s [372/748] perl-vars-0:1.05-527.fc45.noa 100% | 12.4 MiB/s | 12.7 KiB | 00m00s [373/748] m4-0:1.4.21-3.fc45.ppc64le 100% | 43.0 MiB/s | 352.1 KiB | 00m00s [374/748] fontconfig-0:2.18.3-1.fc45.pp 100% | 41.2 MiB/s | 422.0 KiB | 00m00s [375/748] default-fonts-core-sans-0:4.3 100% | 7.1 MiB/s | 29.1 KiB | 00m00s [376/748] fonts-filesystem-1:5.0.0-4.fc 100% | 4.2 MiB/s | 8.7 KiB | 00m00s [377/748] xml-common-0:0.6.3-69.fc45.no 100% | 15.1 MiB/s | 31.0 KiB | 00m00s [378/748] texlive-cm-super-12:svn15878- 100% | 50.7 MiB/s | 61.8 MiB | 00m01s [379/748] abattis-cantarell-vf-fonts-0: 100% | 380.6 KiB/s | 120.3 KiB | 00m00s [380/748] google-noto-fonts-common-0:20 100% | 5.4 MiB/s | 16.7 KiB | 00m00s [381/748] google-noto-sans-vf-fonts-0:2 100% | 1.9 MiB/s | 613.8 KiB | 00m00s [382/748] harfbuzz-0:14.4.0-1.fc46.ppc6 100% | 104.0 MiB/s | 1.2 MiB | 00m00s [383/748] glib2-0:2.89.4-1.fc46.ppc64le 100% | 99.5 MiB/s | 3.3 MiB | 00m00s [384/748] libpaper-1:2.1.1-11.fc45.ppc6 100% | 13.1 MiB/s | 26.8 KiB | 00m00s [385/748] libpng-2:1.6.58-2.fc45.ppc64l 100% | 45.1 MiB/s | 138.7 KiB | 00m00s [386/748] graphite2-0:1.3.14-22.fc45.pp 100% | 1.6 MiB/s | 109.1 KiB | 00m00s [387/748] freetype-0:2.14.3-2.fc45.ppc6 100% | 6.8 MiB/s | 518.9 KiB | 00m00s [388/748] ghostscript-0:10.07.1-2.fc46. 100% | 248.1 KiB/s | 31.8 KiB | 00m00s [389/748] libXpm-0:3.5.19-4.fc45.ppc64l 100% | 477.1 KiB/s | 74.4 KiB | 00m00s [390/748] teckit-0:2.5.13-3.fc45.ppc64l 100% | 2.0 MiB/s | 417.7 KiB | 00m00s [391/748] ghostscript-tools-fontutils-0 100% | 122.1 KiB/s | 11.4 KiB | 00m00s [392/748] adobe-mappings-cmap-0:2023111 100% | 101.8 MiB/s | 2.2 MiB | 00m00s [393/748] adobe-mappings-cmap-deprecate 100% | 33.4 MiB/s | 102.6 KiB | 00m00s [394/748] adobe-mappings-pdf-0:20190401 100% | 75.7 MiB/s | 619.9 KiB | 00m00s [395/748] google-droid-sans-fonts-0:202 100% | 93.2 MiB/s | 2.7 MiB | 00m00s [396/748] ghostscript-tools-printing-0: 100% | 83.8 KiB/s | 11.7 KiB | 00m00s [397/748] urw-base35-fonts-0:20200910-2 100% | 3.2 MiB/s | 9.8 KiB | 00m00s [398/748] jbig2dec-libs-0:0.20-9.fc45.p 100% | 15.6 MiB/s | 80.0 KiB | 00m00s [399/748] urw-base35-bookman-fonts-0:20 100% | 58.9 MiB/s | 845.0 KiB | 00m00s [400/748] urw-base35-c059-fonts-0:20200 100% | 47.3 MiB/s | 872.7 KiB | 00m00s [401/748] urw-base35-fonts-common-0:202 100% | 10.0 MiB/s | 20.5 KiB | 00m00s [402/748] urw-base35-d050000l-fonts-0:2 100% | 24.5 MiB/s | 75.1 KiB | 00m00s [403/748] urw-base35-gothic-fonts-0:202 100% | 62.6 MiB/s | 640.7 KiB | 00m00s [404/748] urw-base35-nimbus-mono-ps-fon 100% | 51.7 MiB/s | 793.7 KiB | 00m00s [405/748] urw-base35-nimbus-roman-fonts 100% | 59.5 MiB/s | 852.9 KiB | 00m00s [406/748] urw-base35-nimbus-sans-fonts- 100% | 54.2 MiB/s | 1.3 MiB | 00m00s [407/748] urw-base35-p052-fonts-0:20200 100% | 43.2 MiB/s | 972.1 KiB | 00m00s [408/748] urw-base35-standard-symbols-p 100% | 7.0 MiB/s | 57.6 KiB | 00m00s [409/748] urw-base35-z003-fonts-0:20200 100% | 67.1 MiB/s | 274.8 KiB | 00m00s [410/748] perl-File-Find-0:1.44-527.fc4 100% | 6.1 MiB/s | 25.0 KiB | 00m00s [411/748] perl-DynaLoader-0:1.57-527.fc 100% | 25.0 MiB/s | 25.6 KiB | 00m00s [412/748] perl-Symbol-0:1.09-527.fc45.n 100% | 13.6 MiB/s | 13.9 KiB | 00m00s [413/748] libgs-0:10.07.1-2.fc46.ppc64l 100% | 20.5 MiB/s | 4.3 MiB | 00m00s [414/748] perl-open-0:1.13-527.fc45.noa 100% | 675.0 KiB/s | 16.2 KiB | 00m00s [415/748] perl-Filter-2:1.65-527.fc45.p 100% | 28.7 MiB/s | 88.2 KiB | 00m00s [416/748] perl-encoding-4:3.00-527.fc45 100% | 12.3 MiB/s | 62.9 KiB | 00m00s [417/748] perl-overload-0:1.40-527.fc45 100% | 22.1 MiB/s | 45.2 KiB | 00m00s [418/748] perl-mro-0:1.30-527.fc45.ppc6 100% | 14.6 MiB/s | 29.9 KiB | 00m00s [419/748] perl-if-0:0.61.000-527.fc45.n 100% | 6.7 MiB/s | 13.7 KiB | 00m00s [420/748] ncurses-0:6.6-3.fc45.ppc64le 100% | 71.5 MiB/s | 439.5 KiB | 00m00s [421/748] perl-IPC-Open3-0:1.24-527.fc4 100% | 7.7 MiB/s | 23.7 KiB | 00m00s [422/748] perl-locale-0:1.13-527.fc45.n 100% | 12.9 MiB/s | 13.2 KiB | 00m00s [423/748] perl-AutoLoader-0:5.74-527.fc 100% | 20.4 MiB/s | 20.9 KiB | 00m00s [424/748] perl-File-stat-0:1.15-527.fc4 100% | 16.8 MiB/s | 17.2 KiB | 00m00s [425/748] perl-SelectSaver-0:1.03-527.f 100% | 11.1 MiB/s | 11.3 KiB | 00m00s [426/748] perl-Class-Struct-0:0.68-527. 100% | 21.2 MiB/s | 21.8 KiB | 00m00s [427/748] perl-Getopt-Std-0:1.15-527.fc 100% | 15.0 MiB/s | 15.4 KiB | 00m00s [428/748] perl-overloading-0:0.03-527.f 100% | 12.2 MiB/s | 12.5 KiB | 00m00s [429/748] libcom_err-devel-0:1.47.4-2.f 100% | 16.0 MiB/s | 16.4 KiB | 00m00s [430/748] libselinux-devel-0:3.11-4.fc4 100% | 78.4 MiB/s | 160.5 KiB | 00m00s [431/748] libsepol-devel-0:3.11-2.fc45. 100% | 23.6 MiB/s | 48.2 KiB | 00m00s [432/748] zziplib-0:0.13.78-6.fc45.ppc6 100% | 1.2 MiB/s | 87.3 KiB | 00m00s [433/748] keyutils-libs-devel-0:1.6.3-8 100% | 1.1 MiB/s | 57.2 KiB | 00m00s [434/748] cups-libs-1:2.4.19-4.fc45.ppc 100% | 5.9 MiB/s | 328.4 KiB | 00m00s [435/748] libjpeg-turbo-0:3.1.4.1-2.fc4 100% | 62.9 MiB/s | 257.8 KiB | 00m00s [436/748] libtiff-0:4.7.2-2.fc45.ppc64l 100% | 59.3 MiB/s | 242.7 KiB | 00m00s [437/748] lcms2-0:2.16-8.fc45.ppc64le 100% | 4.1 MiB/s | 232.0 KiB | 00m00s [438/748] jbigkit-libs-0:2.1-34.fc45.pp 100% | 18.5 MiB/s | 56.9 KiB | 00m00s [439/748] libwebp-0:1.6.0-4.fc45.ppc64l 100% | 72.7 MiB/s | 297.7 KiB | 00m00s [440/748] openjpeg-0:2.5.4-4.fc45.ppc64 100% | 42.9 MiB/s | 219.4 KiB | 00m00s [441/748] libijs-0:0.35-27.fc45.ppc64le 100% | 531.5 KiB/s | 29.2 KiB | 00m00s [442/748] dbus-libs-1:1.16.2-6.fc45.ppc 100% | 54.9 MiB/s | 168.5 KiB | 00m00s [443/748] liblerc-0:4.2.0-1.fc45.ppc64l 100% | 62.6 MiB/s | 256.4 KiB | 00m00s [444/748] avahi-libs-0:0.9~rc2-9.fc45.p 100% | 1.2 MiB/s | 69.3 KiB | 00m00s [445/748] cups-filesystem-1:2.4.19-4.fc 100% | 222.0 KiB/s | 12.0 KiB | 00m00s [446/748] pcre2-devel-0:10.47-1.fc45.2. 100% | 8.2 MiB/s | 527.2 KiB | 00m00s [447/748] dblatex-0:0.3.12-33.fc45.noar 100% | 55.0 MiB/s | 1.1 MiB | 00m00s [448/748] pcre2-utf16-0:10.47-1.fc45.2. 100% | 3.9 MiB/s | 250.8 KiB | 00m00s [449/748] docbook-dtds-0:1.0-92.fc45.no 100% | 65.1 MiB/s | 333.4 KiB | 00m00s [450/748] pcre2-utf32-0:10.47-1.fc45.2. 100% | 3.5 MiB/s | 244.2 KiB | 00m00s [451/748] texlive-appendix-12:svn78101- 100% | 28.8 MiB/s | 324.3 KiB | 00m00s [452/748] texlive-bibtopic-12:svn77682- 100% | 23.4 MiB/s | 239.3 KiB | 00m00s [453/748] texlive-collection-fontsrecom 100% | 1.3 MiB/s | 8.0 KiB | 00m00s [454/748] texlive-collection-xetex-12:s 100% | 1.6 MiB/s | 8.3 KiB | 00m00s [455/748] texlive-changebar-12:svn77682 100% | 44.5 MiB/s | 637.7 KiB | 00m00s [456/748] texlive-overpic-12:svn77682-7 100% | 36.0 MiB/s | 405.7 KiB | 00m00s [457/748] texlive-passivetex-12:svn6974 100% | 9.4 MiB/s | 57.9 KiB | 00m00s [458/748] texlive-multirow-12:svn77682- 100% | 35.5 MiB/s | 618.1 KiB | 00m00s [459/748] texlive-stmaryrd-12:svn77682- 100% | 29.1 MiB/s | 268.3 KiB | 00m00s [460/748] texlive-subfigure-12:svn15878 100% | 31.5 MiB/s | 354.9 KiB | 00m00s [461/748] texlive-wasysym-12:svn77682-9 100% | 21.5 MiB/s | 176.2 KiB | 00m00s [462/748] texlive-xmltex-12:svn76924-11 100% | 11.4 MiB/s | 58.6 KiB | 00m00s [463/748] texlive-avantgar-12:svn77161- 100% | 35.0 MiB/s | 322.2 KiB | 00m00s [464/748] texlive-charter-12:svn15878-9 100% | 22.3 MiB/s | 205.5 KiB | 00m00s [465/748] texlive-bookman-12:svn77161-9 100% | 30.0 MiB/s | 368.5 KiB | 00m00s [466/748] texlive-cmextra-12:svn57866-9 100% | 9.2 MiB/s | 47.1 KiB | 00m00s [467/748] texlive-euro-ce-12:svn25714-9 100% | 7.0 MiB/s | 28.6 KiB | 00m00s [468/748] texlive-euro-12:svn22191-9.fc 100% | 29.6 MiB/s | 212.1 KiB | 00m00s [469/748] texlive-courier-12:svn77161-9 100% | 39.6 MiB/s | 526.5 KiB | 00m00s [470/748] texlive-eurosym-12:svn78101-9 100% | 41.7 MiB/s | 427.5 KiB | 00m00s [471/748] texlive-fpl-12:svn54512-9.fc4 100% | 30.2 MiB/s | 308.9 KiB | 00m00s [472/748] texlive-manfnt-font-12:svn457 100% | 6.8 MiB/s | 34.7 KiB | 00m00s [473/748] texlive-helvetic-12:svn77161- 100% | 42.9 MiB/s | 658.9 KiB | 00m00s [474/748] texlive-mathpazo-12:svn77682- 100% | 48.6 MiB/s | 447.4 KiB | 00m00s [475/748] texlive-mflogo-font-12:svn545 100% | 5.9 MiB/s | 30.4 KiB | 00m00s [476/748] texlive-marvosym-12:svn77682- 100% | 32.0 MiB/s | 557.6 KiB | 00m00s [477/748] texlive-ncntrsbk-12:svn77161- 100% | 39.7 MiB/s | 365.7 KiB | 00m00s [478/748] texlive-palatino-12:svn77161- 100% | 29.8 MiB/s | 427.7 KiB | 00m00s [479/748] texlive-rsfs-12:svn15878-9.fc 100% | 14.4 MiB/s | 73.7 KiB | 00m00s [480/748] texlive-pxfonts-12:svn77682-9 100% | 48.0 MiB/s | 934.6 KiB | 00m00s [481/748] texlive-times-12:svn77161-9.f 100% | 36.2 MiB/s | 370.2 KiB | 00m00s [482/748] texlive-tex-gyre-math-12:svn4 100% | 50.1 MiB/s | 1.8 MiB | 00m00s [483/748] texlive-utopia-12:svn77682-9. 100% | 29.3 MiB/s | 240.0 KiB | 00m00s [484/748] texlive-txfonts-12:svn77682-9 100% | 39.7 MiB/s | 1.4 MiB | 00m00s [485/748] texlive-wasy-12:svn53533-9.fc 100% | 22.0 MiB/s | 337.9 KiB | 00m00s [486/748] texlive-wasy-type1-12:svn5353 100% | 32.4 MiB/s | 265.5 KiB | 00m00s [487/748] texlive-zapfchan-12:svn77161- 100% | 17.7 MiB/s | 108.5 KiB | 00m00s [488/748] texlive-bidi-atbegshi-12:svn6 100% | 18.7 MiB/s | 172.1 KiB | 00m00s [489/748] texlive-arabxetex-12:svn77682 100% | 42.0 MiB/s | 774.0 KiB | 00m00s [490/748] texlive-bidicontour-12:svn776 100% | 7.5 MiB/s | 46.3 KiB | 00m00s [491/748] texlive-bidipagegrid-12:svn77 100% | 6.9 MiB/s | 42.4 KiB | 00m00s [492/748] texlive-bidipresentation-12:s 100% | 18.7 MiB/s | 114.9 KiB | 00m00s [493/748] texlive-bidishadowtext-12:svn 100% | 25.9 MiB/s | 132.5 KiB | 00m00s [494/748] texlive-businesscard-qrcode-1 100% | 44.9 MiB/s | 551.6 KiB | 00m00s [495/748] texlive-ctex-faq-12:svn15878- 100% | 36.2 MiB/s | 482.4 KiB | 00m00s [496/748] texlive-cqubeamer-12:svn54512 100% | 54.7 MiB/s | 2.4 MiB | 00m00s [497/748] texlive-fixlatvian-12:svn2163 100% | 18.0 MiB/s | 129.1 KiB | 00m00s [498/748] texlive-ctex-12:svn77682-11.f 100% | 33.6 MiB/s | 1.3 MiB | 00m00s [499/748] texlive-font-change-xetex-12: 100% | 36.7 MiB/s | 563.1 KiB | 00m00s [500/748] texlive-fontwrap-12:svn15878- 100% | 28.4 MiB/s | 290.3 KiB | 00m00s [501/748] texlive-fontbook-12:svn23608- 100% | 46.2 MiB/s | 1.2 MiB | 00m00s [502/748] texlive-interchar-12:svn77682 100% | 12.5 MiB/s | 102.6 KiB | 00m00s [503/748] texlive-na-position-12:svn555 100% | 13.7 MiB/s | 98.0 KiB | 00m00s [504/748] texlive-philokalia-12:svn4535 100% | 25.6 MiB/s | 183.2 KiB | 00m00s [505/748] texlive-ptext-12:svn77682-11. 100% | 17.6 MiB/s | 90.2 KiB | 00m00s [506/748] texlive-simple-resume-cv-12:s 100% | 17.2 MiB/s | 105.8 KiB | 00m00s [507/748] texlive-simple-thesis-dissert 100% | 29.0 MiB/s | 208.0 KiB | 00m00s [508/748] texlive-tex-gyre-12:svn68624- 100% | 60.0 MiB/s | 18.6 MiB | 00m00s [509/748] texlive-tetragonos-12:svn4973 100% | 3.6 MiB/s | 373.3 KiB | 00m00s [510/748] texlive-shtthesis-12:svn62441 100% | 15.4 MiB/s | 2.1 MiB | 00m00s [511/748] texlive-ucharclasses-12:svn77 100% | 8.0 MiB/s | 155.5 KiB | 00m00s [512/748] texlive-unicode-bidi-12:svn77 100% | 1.2 MiB/s | 15.9 KiB | 00m00s [513/748] texlive-unisugar-12:svn22357- 100% | 40.9 MiB/s | 460.4 KiB | 00m00s [514/748] texlive-unimath-plain-xetex-1 100% | 29.6 MiB/s | 515.8 KiB | 00m00s [515/748] texlive-xebaposter-12:svn7529 100% | 25.5 MiB/s | 522.9 KiB | 00m00s [516/748] texlive-xechangebar-12:svn776 100% | 2.8 MiB/s | 22.7 KiB | 00m00s [517/748] texlive-xecolor-12:svn77682-1 100% | 3.3 MiB/s | 17.1 KiB | 00m00s [518/748] texlive-xecyr-12:svn77682-11. 100% | 55.0 MiB/s | 676.4 KiB | 00m00s [519/748] texlive-xeindex-12:svn77682-1 100% | 9.9 MiB/s | 91.7 KiB | 00m00s [520/748] texlive-xecjk-12:svn77682-11. 100% | 59.3 MiB/s | 2.0 MiB | 00m00s [521/748] texlive-xespotcolor-12:svn776 100% | 9.3 MiB/s | 152.1 KiB | 00m00s [522/748] texlive-xesearch-12:svn77682- 100% | 26.0 MiB/s | 612.6 KiB | 00m00s [523/748] texlive-xetex-devanagari-12:s 100% | 35.6 MiB/s | 437.1 KiB | 00m00s [524/748] texlive-xetex-pstricks-12:svn 100% | 2.0 MiB/s | 10.2 KiB | 00m00s [525/748] texlive-xetex-itrans-12:svn55 100% | 31.9 MiB/s | 456.8 KiB | 00m00s [526/748] texlive-xetexfontinfo-12:svn1 100% | 3.6 MiB/s | 14.7 KiB | 00m00s [527/748] texlive-xetex-tibetan-12:svn2 100% | 42.7 MiB/s | 437.0 KiB | 00m00s [528/748] texlive-xetexref-12:svn73885- 100% | 22.2 MiB/s | 182.3 KiB | 00m00s [529/748] texlive-xetexko-12:svn77682-1 100% | 25.7 MiB/s | 342.7 KiB | 00m00s [530/748] texlive-xevlna-12:svn77682-11 100% | 8.9 MiB/s | 64.0 KiB | 00m00s [531/748] texlive-zbmath-review-templat 100% | 37.5 MiB/s | 230.3 KiB | 00m00s [532/748] texlive-eepic-12:svn77682-4.f 100% | 22.7 MiB/s | 116.1 KiB | 00m00s [533/748] texlive-ulem-12:svn77682-5.fc 100% | 28.5 MiB/s | 175.2 KiB | 00m00s [534/748] texlive-cjkpunct-12:svn41119- 100% | 25.8 MiB/s | 158.7 KiB | 00m00s [535/748] texlive-everyhook-12:svn35675 100% | 21.0 MiB/s | 129.2 KiB | 00m00s [536/748] texlive-cjk-12:svn60865-7.fc4 100% | 54.5 MiB/s | 1.6 MiB | 00m00s [537/748] texlive-adobemapping-12:svn66 100% | 51.7 MiB/s | 2.8 MiB | 00m00s [538/748] texlive-platex-tools-12:svn72 100% | 38.2 MiB/s | 586.5 KiB | 00m00s [539/748] texlive-svn-prov-12:svn77682- 100% | 27.5 MiB/s | 253.4 KiB | 00m00s [540/748] texlive-luatexja-12:svn78752- 100% | 46.9 MiB/s | 3.5 MiB | 00m00s [541/748] texlive-ttfutils-12:svn77830- 100% | 11.2 MiB/s | 309.9 KiB | 00m00s [542/748] texlive-xcjk2uni-12:svn54958- 100% | 35.7 MiB/s | 511.3 KiB | 00m00s [543/748] texlive-uptex-12:svn77830-113 100% | 49.2 MiB/s | 1.5 MiB | 00m00s [544/748] texlive-xpinyin-12:svn77682-9 100% | 24.8 MiB/s | 483.3 KiB | 00m00s [545/748] texlive-zhmetrics-uptex-12:sv 100% | 17.9 MiB/s | 146.6 KiB | 00m00s [546/748] texlive-zhmetrics-12:svn22207 100% | 55.6 MiB/s | 1.6 MiB | 00m00s [547/748] texlive-zhnumber-12:svn77682- 100% | 16.7 MiB/s | 308.6 KiB | 00m00s [548/748] texlive-was-12:svn64691-7.fc4 100% | 35.9 MiB/s | 294.2 KiB | 00m00s [549/748] texlive-perltex-12:svn73044-1 100% | 36.0 MiB/s | 442.4 KiB | 00m00s [550/748] texlive-tkz-tab-12:svn66115-4 100% | 30.5 MiB/s | 375.0 KiB | 00m00s [551/748] texlive-lettrine-12:svn77053- 100% | 35.7 MiB/s | 475.4 KiB | 00m00s [552/748] biber-0:2.22-2.fc46.noarch 100% | 26.9 MiB/s | 303.0 KiB | 00m00s [553/748] latexmk-0:4.88-2.fc45.noarch 100% | 41.4 MiB/s | 466.2 KiB | 00m00s [554/748] texlive-alphalph-12:svn77682- 100% | 26.9 MiB/s | 358.7 KiB | 00m00s [555/748] texlive-biblatex-gb7714-2015- 100% | 53.6 MiB/s | 1.7 MiB | 00m00s [556/748] texlive-datetime-12:svn36650- 100% | 37.8 MiB/s | 463.9 KiB | 00m00s [557/748] texlive-fmtcount-12:svn77682- 100% | 44.8 MiB/s | 641.6 KiB | 00m00s [558/748] texlive-lastpage-12:svn77682- 100% | 35.2 MiB/s | 576.2 KiB | 00m00s [559/748] texlive-tocvsec2-12:svn77682- 100% | 27.4 MiB/s | 309.0 KiB | 00m00s [560/748] texlive-biblatex-12:svn77682- 100% | 56.1 MiB/s | 7.3 MiB | 00m00s [561/748] texlive-undolabl-12:svn77682- 100% | 7.5 MiB/s | 363.3 KiB | 00m00s [562/748] texlive-fandol-12:svn37889-9. 100% | 48.7 MiB/s | 21.7 MiB | 00m00s [563/748] texlive-luatextra-12:svn77682 100% | 2.7 MiB/s | 317.5 KiB | 00m00s [564/748] texlive-xits-12:svn55730-7.fc 100% | 4.8 MiB/s | 602.3 KiB | 00m00s [565/748] texlive-t2-12:svn47870-9.fc45 100% | 8.4 MiB/s | 103.7 KiB | 00m00s [566/748] texlive-gensymb-12:svn77682-7 100% | 27.6 MiB/s | 226.0 KiB | 00m00s [567/748] texlive-cjk-ko-12:svn70300-6. 100% | 16.6 MiB/s | 186.6 KiB | 00m00s [568/748] texlive-tikz-cd-12:svn77682-4 100% | 23.7 MiB/s | 290.9 KiB | 00m00s [569/748] texlive-garuda-c90-12:svn6083 100% | 6.2 MiB/s | 19.1 KiB | 00m00s [570/748] texlive-norasi-c90-12:svn6083 100% | 5.0 MiB/s | 25.5 KiB | 00m00s [571/748] texlive-cns-12:svn45677-9.fc4 100% | 63.1 MiB/s | 3.4 MiB | 00m00s [572/748] texlive-uhc-12:svn16791-6.fc4 100% | 46.6 MiB/s | 4.4 MiB | 00m00s [573/748] texlive-ascmac-12:svn53411-6. 100% | 17.9 MiB/s | 183.6 KiB | 00m00s [574/748] texlive-collcell-12:svn77682- 100% | 22.6 MiB/s | 208.1 KiB | 00m00s [575/748] texlive-regexpatch-12:svn7768 100% | 37.3 MiB/s | 534.3 KiB | 00m00s [576/748] texlive-sttools-12:svn77682-7 100% | 36.8 MiB/s | 565.2 KiB | 00m00s [577/748] texlive-platex-12:svn77830-6. 100% | 54.1 MiB/s | 1.9 MiB | 00m00s [578/748] texlive-convbkmk-12:svn49252- 100% | 4.1 MiB/s | 20.8 KiB | 00m00s [579/748] texlive-wadalab-12:svn42428-6 100% | 56.8 MiB/s | 17.4 MiB | 00m00s [580/748] texlive-japanese-otf-12:svn78 100% | 42.0 MiB/s | 731.6 KiB | 00m00s [581/748] texlive-ptex-base-12:svn64072 100% | 4.1 MiB/s | 20.8 KiB | 00m00s [582/748] texlive-uptex-base-12:svn7784 100% | 32.4 MiB/s | 298.2 KiB | 00m00s [583/748] texlive-uptex-fonts-12:svn741 100% | 30.3 MiB/s | 279.7 KiB | 00m00s [584/748] perl-Opcode-0:1.71-527.fc45.p 100% | 7.2 MiB/s | 37.1 KiB | 00m00s [585/748] texlive-arphic-12:svn15878-9. 100% | 48.0 MiB/s | 26.7 MiB | 00m01s [586/748] texlive-minifp-12:svn76924-7. 100% | 3.0 MiB/s | 446.5 KiB | 00m00s [587/748] perl-Business-ISBN-0:3.014-2. 100% | 6.5 MiB/s | 33.5 KiB | 00m00s [588/748] perl-Business-ISMN-0:1.205-4. 100% | 5.0 MiB/s | 25.8 KiB | 00m00s [589/748] perl-Business-ISSN-0:1.008-4. 100% | 4.5 MiB/s | 18.4 KiB | 00m00s [590/748] perl-Class-Accessor-0:0.51-25 100% | 5.6 MiB/s | 28.5 KiB | 00m00s [591/748] perl-Data-Compare-0:1.29-9.fc 100% | 6.7 MiB/s | 34.3 KiB | 00m00s [592/748] perl-Data-Uniqid-0:0.12-39.fc 100% | 5.9 MiB/s | 12.1 KiB | 00m00s [593/748] perl-DateTime-2:1.66-7.fc45.p 100% | 21.7 MiB/s | 133.6 KiB | 00m00s [594/748] perl-DateTime-Calendar-Julian 100% | 4.5 MiB/s | 23.1 KiB | 00m00s [595/748] perl-DateTime-Format-Builder- 100% | 15.2 MiB/s | 93.4 KiB | 00m00s [596/748] texlive-ipaex-12:svn61719-6.f 100% | 34.6 MiB/s | 15.7 MiB | 00m00s [597/748] perl-File-Slurper-0:0.014-10. 100% | 261.1 KiB/s | 20.9 KiB | 00m00s [598/748] perl-DateTime-TimeZone-0:2.69 100% | 4.4 MiB/s | 394.7 KiB | 00m00s [599/748] perl-IO-String-0:1.08-55.fc45 100% | 4.2 MiB/s | 17.0 KiB | 00m00s [600/748] perl-IPC-Cmd-2:1.04-527.fc45. 100% | 12.8 MiB/s | 39.2 KiB | 00m00s [601/748] perl-IPC-Run3-0:0.049-6.fc45. 100% | 7.5 MiB/s | 38.5 KiB | 00m00s [602/748] perl-LWP-Protocol-https-0:6.1 100% | 4.2 MiB/s | 21.6 KiB | 00m00s [603/748] perl-Lingua-Translit-0:0.29-1 100% | 5.4 MiB/s | 33.2 KiB | 00m00s [604/748] perl-List-AllUtils-0:0.19-17. 100% | 6.8 MiB/s | 48.7 KiB | 00m00s [605/748] perl-Parse-RecDescent-0:1.967 100% | 22.6 MiB/s | 208.0 KiB | 00m00s [606/748] perl-Log-Log4perl-0:1.58-1.fc 100% | 28.1 MiB/s | 345.0 KiB | 00m00s [607/748] perl-Regexp-Common-0:20240808 100% | 30.7 MiB/s | 188.8 KiB | 00m00s [608/748] perl-Sort-Key-0:1.33-38.fc45. 100% | 11.5 MiB/s | 47.2 KiB | 00m00s [609/748] perl-Text-Balanced-0:2.07-527 100% | 11.8 MiB/s | 48.4 KiB | 00m00s [610/748] perl-Text-CSV-0:2.06-3.fc45.n 100% | 23.4 MiB/s | 120.0 KiB | 00m00s [611/748] perl-Text-Roman-0:3.5-33.fc45 100% | 5.5 MiB/s | 22.4 KiB | 00m00s [612/748] perl-Text-BibTeX-0:0.91-8.fc4 100% | 28.2 MiB/s | 259.6 KiB | 00m00s [613/748] perl-Unicode-LineBreak-0:2019 100% | 19.6 MiB/s | 120.7 KiB | 00m00s [614/748] perl-XML-LibXML-1:2.0213-3.fc 100% | 40.2 MiB/s | 370.6 KiB | 00m00s [615/748] perl-XML-LibXML-Simple-0:1.01 100% | 8.0 MiB/s | 32.6 KiB | 00m00s [616/748] perl-Unicode-Collate-0:1.31-5 100% | 38.9 MiB/s | 638.0 KiB | 00m00s [617/748] perl-XML-Writer-0:0.900-19.fc 100% | 8.1 MiB/s | 33.2 KiB | 00m00s [618/748] perl-XML-LibXSLT-0:2.003.000- 100% | 10.5 MiB/s | 64.7 KiB | 00m00s [619/748] xdg-utils-0:1.2.1-6.fc45.noar 100% | 38.7 MiB/s | 79.3 KiB | 00m00s [620/748] perl-autovivification-0:0.18- 100% | 8.2 MiB/s | 33.8 KiB | 00m00s [621/748] texlive-logreq-12:svn53003-9. 100% | 5.5 MiB/s | 22.7 KiB | 00m00s [622/748] texlive-mfirstuc-12:svn77682- 100% | 46.6 MiB/s | 811.3 KiB | 00m00s [623/748] texlive-luacode-12:svn78415-4 100% | 27.1 MiB/s | 416.4 KiB | 00m00s [624/748] texlive-luatexko-12:svn78005- 100% | 37.0 MiB/s | 340.9 KiB | 00m00s [625/748] texlive-fonts-tlwg-12:svn7843 100% | 74.3 MiB/s | 5.1 MiB | 00m00s [626/748] ghostscript-tools-dvipdf-0:10 100% | 95.1 KiB/s | 9.9 KiB | 00m00s [627/748] texlive-l3backend-dev-12:svn7 100% | 46.8 MiB/s | 862.9 KiB | 00m00s [628/748] texlive-kotex-utf-12:svn63690 100% | 60.8 MiB/s | 9.1 MiB | 00m00s [629/748] texlive-latex-firstaid-dev-12 100% | 20.9 MiB/s | 299.4 KiB | 00m00s [630/748] texlive-plautopatch-12:svn776 100% | 18.4 MiB/s | 150.6 KiB | 00m00s [631/748] texlive-ptex-fonts-12:svn6433 100% | 11.0 MiB/s | 67.4 KiB | 00m00s [632/748] texlive-ptex-12:svn77830-113. 100% | 35.8 MiB/s | 439.4 KiB | 00m00s [633/748] perl-Business-ISBN-Data-0:202 100% | 8.2 MiB/s | 50.6 KiB | 00m00s [634/748] perl-Tie-Cycle-0:1.233-2.fc45 100% | 3.8 MiB/s | 19.6 KiB | 00m00s [635/748] perl-File-Find-Rule-0:0.35-4. 100% | 5.3 MiB/s | 32.3 KiB | 00m00s [636/748] perl-Math-BigInt-1:2.0050.03- 100% | 45.7 MiB/s | 233.9 KiB | 00m00s [637/748] perl-Sys-Hostname-0:1.25-527. 100% | 3.3 MiB/s | 16.7 KiB | 00m00s [638/748] texlive-l3kernel-dev-12:svn78 100% | 51.3 MiB/s | 11.8 MiB | 00m00s [639/748] perl-Dist-CheckConflicts-0:0. 100% | 7.5 MiB/s | 23.0 KiB | 00m00s [640/748] perl-Params-ValidationCompile 100% | 6.1 MiB/s | 37.3 KiB | 00m00s [641/748] perl-Specio-0:0.53-3.fc45.noa 100% | 27.0 MiB/s | 165.8 KiB | 00m00s [642/748] perl-DateTime-Locale-0:1.46-1 100% | 34.2 MiB/s | 4.4 MiB | 00m00s [643/748] perl-namespace-autoclean-0:0. 100% | 1.0 MiB/s | 26.1 KiB | 00m00s [644/748] perl-DateTime-Format-Strptime 100% | 8.0 MiB/s | 41.1 KiB | 00m00s [645/748] perl-Params-Validate-0:1.31-1 100% | 11.5 MiB/s | 70.5 KiB | 00m00s [646/748] perl-Class-Singleton-0:1.6-16 100% | 6.2 MiB/s | 25.3 KiB | 00m00s [647/748] perl-DateTime-TimeZone-Tzfile 100% | 4.7 MiB/s | 19.4 KiB | 00m00s [648/748] perl-ExtUtils-MM-Utils-2:7.78 100% | 5.6 MiB/s | 11.4 KiB | 00m00s [649/748] perl-Module-Runtime-0:0.018-4 100% | 7.6 MiB/s | 31.1 KiB | 00m00s [650/748] perl-Module-Load-Conditional- 100% | 10.6 MiB/s | 21.7 KiB | 00m00s [651/748] perl-Params-Check-1:0.38-527. 100% | 10.5 MiB/s | 21.5 KiB | 00m00s [652/748] perl-Mozilla-CA-0:20260813-1. 100% | 2.6 MiB/s | 16.2 KiB | 00m00s [653/748] perl-List-SomeUtils-0:0.59-10 100% | 7.4 MiB/s | 45.2 KiB | 00m00s [654/748] perl-List-UtilsBy-0:0.12-14.f 100% | 5.5 MiB/s | 28.3 KiB | 00m00s [655/748] perl-IPC-SysV-0:2.09-527.fc45 100% | 8.1 MiB/s | 41.2 KiB | 00m00s [656/748] perl-Log-Dispatch-0:2.71-9.fc 100% | 16.7 MiB/s | 85.6 KiB | 00m00s [657/748] perl-LDAP-1:0.68-18.fc45.noar 100% | 38.2 MiB/s | 391.7 KiB | 00m00s [658/748] perl-Log-Dispatch-FileRotate- 100% | 6.4 MiB/s | 32.6 KiB | 00m00s [659/748] perl-Getopt-Tabular-0:0.3-41. 100% | 11.3 MiB/s | 46.1 KiB | 00m00s [660/748] perl-MIME-Charset-0:1.013.1-1 100% | 11.7 MiB/s | 48.0 KiB | 00m00s [661/748] perl-XML-NamespaceSupport-0:1 100% | 12.5 MiB/s | 25.6 KiB | 00m00s [662/748] sombok-0:2.4.0-26.fc45.ppc64l 100% | 10.0 MiB/s | 51.3 KiB | 00m00s [663/748] perl-XML-SAX-Base-0:1.09-28.f 100% | 14.3 MiB/s | 29.2 KiB | 00m00s [664/748] perl-XML-SAX-0:1.02-21.fc45.n 100% | 15.3 MiB/s | 62.9 KiB | 00m00s [665/748] perl-autodie-0:2.37-527.fc45. 100% | 19.0 MiB/s | 97.2 KiB | 00m00s [666/748] texlive-fnpara-12:svn25607-7. 100% | 26.0 MiB/s | 186.6 KiB | 00m00s [667/748] texlive-sectsty-12:svn77682-7 100% | 25.0 MiB/s | 230.2 KiB | 00m00s [668/748] perl-Number-Compare-0:0.03-43 100% | 2.3 MiB/s | 11.7 KiB | 00m00s [669/748] texlive-arydshln-12:svn77682- 100% | 45.1 MiB/s | 830.5 KiB | 00m00s [670/748] perl-Text-Glob-0:0.11-28.fc45 100% | 2.6 MiB/s | 13.2 KiB | 00m00s [671/748] perl-Eval-Closure-0:0.14-28.f 100% | 4.6 MiB/s | 23.8 KiB | 00m00s [672/748] perl-Exception-Class-0:1.45-1 100% | 8.5 MiB/s | 43.6 KiB | 00m00s [673/748] perl-Clone-PP-0:1.08-16.fc45. 100% | 3.6 MiB/s | 14.9 KiB | 00m00s [674/748] perl-Devel-StackTrace-1:2.05- 100% | 7.4 MiB/s | 30.5 KiB | 00m00s [675/748] perl-MRO-Compat-0:0.15-14.fc4 100% | 8.2 MiB/s | 25.2 KiB | 00m00s [676/748] perl-Module-Implementation-0: 100% | 4.6 MiB/s | 19.0 KiB | 00m00s [677/748] perl-Role-Tiny-0:2.002005-2.f 100% | 7.9 MiB/s | 32.4 KiB | 00m00s [678/748] perl-XString-0:0.005-20.fc45. 100% | 5.6 MiB/s | 22.8 KiB | 00m00s [679/748] perl-version-9:0.99.34-527.fc 100% | 31.2 MiB/s | 63.9 KiB | 00m00s [680/748] perl-namespace-clean-0:0.27-3 100% | 16.6 MiB/s | 34.0 KiB | 00m00s [681/748] perl-Date-ISO8601-0:0.005-25. 100% | 4.7 MiB/s | 19.1 KiB | 00m00s [682/748] perl-DateTime-TimeZone-System 100% | 4.4 MiB/s | 22.5 KiB | 00m00s [683/748] perl-Module-CoreList-1:5.2026 100% | 31.2 MiB/s | 95.8 KiB | 00m00s [684/748] perl-Params-Classify-0:0.015- 100% | 7.7 MiB/s | 31.5 KiB | 00m00s [685/748] perl-Module-Metadata-0:1.0000 100% | 17.8 MiB/s | 36.4 KiB | 00m00s [686/748] perl-Authen-SASL-0:2.2000-2.f 100% | 14.1 MiB/s | 72.3 KiB | 00m00s [687/748] perl-Convert-ASN1-0:0.34-8.fc 100% | 11.6 MiB/s | 59.2 KiB | 00m00s [688/748] perl-JSON-0:4.11-2.fc45.noarc 100% | 18.3 MiB/s | 93.9 KiB | 00m00s [689/748] perl-Text-Soundex-0:3.05-38.f 100% | 7.3 MiB/s | 29.9 KiB | 00m00s [690/748] perl-Devel-GlobalDestruction- 100% | 4.1 MiB/s | 16.8 KiB | 00m00s [691/748] perl-MIME-Lite-0:3.038-2.fc45 100% | 15.9 MiB/s | 81.3 KiB | 00m00s [692/748] perl-Mail-Sender-1:0.903-29.f 100% | 12.3 MiB/s | 50.5 KiB | 00m00s [693/748] perl-Mail-Sendmail-0:0.83-2.f 100% | 8.9 MiB/s | 36.4 KiB | 00m00s [694/748] perl-MailTools-0:2.22-5.fc45. 100% | 21.3 MiB/s | 109.2 KiB | 00m00s [695/748] perl-Sys-Syslog-0:0.36-528.fc 100% | 7.6 MiB/s | 46.8 KiB | 00m00s [696/748] perl-Tie-RefHash-0:1.41-527.f 100% | 5.7 MiB/s | 23.3 KiB | 00m00s [697/748] texlive-latex-base-dev-12:svn 100% | 62.8 MiB/s | 38.1 MiB | 00m01s [698/748] perl-Devel-LexAlias-0:0.05-44 100% | 86.1 KiB/s | 16.5 KiB | 00m00s [699/748] perl-Date-Manip-0:6.99-2.fc45 100% | 5.4 MiB/s | 1.1 MiB | 00m00s [700/748] perl-Class-Data-Inheritable-0 100% | 1.1 MiB/s | 12.8 KiB | 00m00s [701/748] perltidy-0:20260826-1.fc46.no 100% | 46.8 MiB/s | 911.3 KiB | 00m00s [702/748] perl-Class-Method-Modifiers-0 100% | 5.4 MiB/s | 49.7 KiB | 00m00s [703/748] perl-GSSAPI-0:0.28-53.fc45.pp 100% | 6.0 MiB/s | 55.0 KiB | 00m00s [704/748] perl-JSON-PP-1:4.18-3.fc45.no 100% | 21.3 MiB/s | 65.3 KiB | 00m00s [705/748] perl-Sub-Exporter-Progressive 100% | 5.0 MiB/s | 20.6 KiB | 00m00s [706/748] perl-Email-Date-Format-0:1.00 100% | 4.6 MiB/s | 18.7 KiB | 00m00s [707/748] perl-Sys-Hostname-Long-0:1.5- 100% | 4.1 MiB/s | 16.7 KiB | 00m00s [708/748] perl-Devel-Caller-0:2.07-13.f 100% | 4.6 MiB/s | 18.8 KiB | 00m00s [709/748] perl-Net-SMTP-SSL-0:1.04-29.f 100% | 2.3 MiB/s | 11.5 KiB | 00m00s [710/748] perl-Sub-Exporter-0:0.991-9.f 100% | 25.3 MiB/s | 77.7 KiB | 00m00s [711/748] perl-PadWalker-0:2.5-21.fc45. 100% | 13.4 MiB/s | 27.5 KiB | 00m00s [712/748] perl-Data-OptList-0:0.114-9.f 100% | 13.0 MiB/s | 26.6 KiB | 00m00s [713/748] perl-Package-Generator-0:1.10 100% | 10.9 MiB/s | 22.4 KiB | 00m00s [714/748] perl-Params-Util-0:1.102-22.f 100% | 8.0 MiB/s | 32.7 KiB | 00m00s [715/748] perl-Sub-Install-0:0.929-10.f 100% | 7.3 MiB/s | 22.6 KiB | 00m00s [716/748] libXrender-0:0.9.12-5.fc45.pp 100% | 13.9 MiB/s | 28.5 KiB | 00m00s [717/748] lzo-0:2.10-17.fc45.ppc64le 100% | 25.9 MiB/s | 79.6 KiB | 00m00s [718/748] cairo-0:1.18.4-9.fc45.ppc64le 100% | 72.0 MiB/s | 811.4 KiB | 00m00s [719/748] perl-Safe-0:2.47-527.fc45.noa 100% | 4.0 MiB/s | 24.6 KiB | 00m00s [720/748] pixman-0:0.46.2-4.fc45.ppc64l 100% | 22.9 MiB/s | 234.5 KiB | 00m00s [721/748] emacs-filesystem-1:30.2-3.fc4 100% | 3.9 MiB/s | 8.0 KiB | 00m00s [722/748] xpdf-libs-1:4.06-3.fc45.ppc64 100% | 59.1 MiB/s | 666.0 KiB | 00m00s [723/748] libthai-0:0.1.30-3.fc45.ppc64 100% | 42.3 MiB/s | 216.8 KiB | 00m00s [724/748] libdatrie-0:0.2.14-3.fc45.ppc 100% | 16.6 MiB/s | 33.9 KiB | 00m00s [725/748] perl-English-0:1.12-527.fc45. 100% | 6.5 MiB/s | 13.3 KiB | 00m00s [726/748] perl-B-Hooks-EndOfScope-0:0.2 100% | 21.0 MiB/s | 43.1 KiB | 00m00s [727/748] perl-Hash-Util-FieldHash-0:1. 100% | 19.2 MiB/s | 39.4 KiB | 00m00s [728/748] perl-Variable-Magic-0:0.65-1. 100% | 13.7 MiB/s | 56.0 KiB | 00m00s [729/748] perl-Package-Stash-XS-0:0.30- 100% | 9.1 MiB/s | 37.3 KiB | 00m00s [730/748] desktop-file-utils-0:0.28-8.f 100% | 1.2 MiB/s | 68.8 KiB | 00m00s [731/748] perl-deprecate-0:0.04-527.fc4 100% | 4.6 MiB/s | 14.3 KiB | 00m00s [732/748] libxslt-0:1.1.43-9.fc45.ppc64 100% | 3.3 MiB/s | 184.7 KiB | 00m00s [733/748] perl-Package-Stash-0:0.40-12. 100% | 409.9 KiB/s | 32.4 KiB | 00m00s [734/748] perl-Ref-Util-XS-0:0.117-30.f 100% | 4.6 MiB/s | 23.5 KiB | 00m00s [735/748] hostname-0:3.25-5.fc45.ppc64l 100% | 226.4 KiB/s | 26.9 KiB | 00m00s [736/748] perl-DynaLoader-Functions-0:0 100% | 3.0 MiB/s | 18.2 KiB | 00m00s [737/748] perl-Locale-Maketext-Simple-1 100% | 8.4 MiB/s | 17.3 KiB | 00m00s [738/748] perl-Ref-Util-0:0.204-25.fc45 100% | 204.7 KiB/s | 23.1 KiB | 00m00s [739/748] perl-Locale-Maketext-0:1.33-5 100% | 30.5 MiB/s | 93.7 KiB | 00m00s [740/748] perl-Math-Complex-0:1.63-527. 100% | 15.0 MiB/s | 46.0 KiB | 00m00s [741/748] perl-I18N-LangTags-0:0.45-527 100% | 25.6 MiB/s | 52.4 KiB | 00m00s [742/748] perl-File-Compare-0:1.100.800 100% | 6.3 MiB/s | 12.9 KiB | 00m00s [743/748] perl-Tie-0:4.6-527.fc45.noarc 100% | 13.7 MiB/s | 28.0 KiB | 00m00s [744/748] perl-sigtrap-0:1.10-527.fc45. 100% | 3.7 MiB/s | 15.3 KiB | 00m00s [745/748] perl-meta-notation-0:5.44.0-5 100% | 5.0 MiB/s | 10.3 KiB | 00m00s [746/748] perl-Unicode-UCD-0:0.83-527.f 100% | 15.4 MiB/s | 79.1 KiB | 00m00s [747/748] perl-Devel-CallChecker-0:0.00 100% | 179.7 KiB/s | 23.2 KiB | 00m00s [748/748] perl-Crypt-URandom-0:0.55-3.f 100% | 276.0 KiB/s | 31.2 KiB | 00m00s -------------------------------------------------------------------------------- [748/748] Total 100% | 73.9 MiB/s | 662.5 MiB | 00m09s Running transaction [ 1/750] Verify package files 100% | 72.0 B/s | 748.0 B | 00m10s >>> Running %pretrans scriptlet: texlive-base-12:20260301-113.fc45.ppc64le >>> Finished %pretrans scriptlet: texlive-base-12:20260301-113.fc45.ppc64le >>> [RPM] /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root/var/cache/dnf/copr_base-bb8f6c99d12f7709/packages/bison-3.8.2-16.fc45.ppc64le.rpm: Header OpenPGP V4 RSA/SHA256 signature, key ID 5291f7fa5c4b3009: NOKEY [ 2/750] Prepare transaction 100% | 547.0 B/s | 748.0 B | 00m01s [ 3/750] Installing texlive-base-12:20 100% | 139.0 MiB/s | 21.3 MiB | 00m00s [ 4/750] Installing texlive-lib-12:202 100% | 72.0 MiB/s | 737.6 KiB | 00m00s [ 5/750] Installing libpng-2:1.6.58-2. 100% | 65.4 MiB/s | 334.9 KiB | 00m00s [ 6/750] Installing fonts-filesystem-1 100% | 384.8 KiB/s | 788.0 B | 00m00s [ 7/750] Installing urw-base35-fonts-c 100% | 18.8 MiB/s | 38.4 KiB | 00m00s [ 8/750] Installing pixman-0:0.46.2-4. 100% | 79.9 MiB/s | 654.2 KiB | 00m00s [ 9/750] Installing libpaper-1:2.1.1-1 100% | 23.9 MiB/s | 98.1 KiB | 00m00s [ 10/750] Installing sgml-common-0:0.6. 100% | 2.4 MiB/s | 174.9 KiB | 00m00s [ 11/750] Installing libxslt-0:1.1.43-9 100% | 8.5 MiB/s | 614.6 KiB | 00m00s [ 12/750] Installing libjpeg-turbo-0:3. 100% | 85.5 MiB/s | 875.1 KiB | 00m00s [ 13/750] Installing zziplib-0:0.13.78- 100% | 45.0 MiB/s | 414.4 KiB | 00m00s [ 14/750] Installing adobe-mappings-cma 100% | 104.8 MiB/s | 15.2 MiB | 00m00s [ 15/750] Installing glib2-0:2.89.4-1.f 100% | 76.0 MiB/s | 16.9 MiB | 00m00s [ 16/750] Installing graphite2-0:1.3.14 100% | 4.6 MiB/s | 306.1 KiB | 00m00s [ 17/750] Installing freetype-0:2.14.3- 100% | 78.1 MiB/s | 1.2 MiB | 00m00s [ 18/750] Installing harfbuzz-0:14.4.0- 100% | 82.5 MiB/s | 3.4 MiB | 00m00s [ 19/750] Installing xml-common-0:0.6.3 100% | 15.8 MiB/s | 81.1 KiB | 00m00s [ 20/750] Installing m4-0:1.4.21-3.fc45 100% | 10.2 MiB/s | 959.0 KiB | 00m00s [ 21/750] Installing groff-base-0:1.24. 100% | 36.1 MiB/s | 4.9 MiB | 00m00s [ 22/750] Installing libICE-0:1.1.2-5.f 100% | 54.6 MiB/s | 223.6 KiB | 00m00s [ 23/750] Installing libSM-0:1.2.5-5.fc 100% | 9.8 MiB/s | 130.2 KiB | 00m00s [ 24/750] Installing groff-0:1.24.1-2.f 100% | 35.1 MiB/s | 4.8 MiB | 00m00s [ 25/750] Installing docbook-dtds-0:1.0 100% | 8.9 MiB/s | 6.8 MiB | 00m01s [ 26/750] Installing adobe-mappings-cma 100% | 47.6 MiB/s | 585.2 KiB | 00m00s [ 27/750] Installing opensp-0:1.5.2-51. 100% | 26.0 MiB/s | 3.3 MiB | 00m00s [ 28/750] Installing openjade-0:1.3.2-8 100% | 21.8 MiB/s | 4.3 MiB | 00m00s [ 29/750] Installing urw-base35-bookman 100% | 52.5 MiB/s | 1.4 MiB | 00m00s [ 30/750] Installing urw-base35-c059-fo 100% | 73.4 MiB/s | 1.4 MiB | 00m00s [ 31/750] Installing urw-base35-d050000 100% | 20.8 MiB/s | 85.4 KiB | 00m00s [ 32/750] Installing urw-base35-gothic- 100% | 72.7 MiB/s | 1.2 MiB | 00m00s [ 33/750] Installing urw-base35-nimbus- 100% | 75.1 MiB/s | 1.1 MiB | 00m00s [ 34/750] Installing urw-base35-nimbus- 100% | 75.9 MiB/s | 1.4 MiB | 00m00s [ 35/750] Installing urw-base35-nimbus- 100% | 82.6 MiB/s | 2.4 MiB | 00m00s [ 36/750] Installing urw-base35-p052-fo 100% | 78.3 MiB/s | 1.5 MiB | 00m00s [ 37/750] Installing urw-base35-standar 100% | 16.1 MiB/s | 66.0 KiB | 00m00s [ 38/750] Installing urw-base35-z003-fo 100% | 54.7 MiB/s | 391.8 KiB | 00m00s [ 39/750] Installing urw-base35-fonts-0 100% | 2.8 MiB/s | 5.6 KiB | 00m00s [ 40/750] Installing abattis-cantarell- 100% | 17.3 MiB/s | 194.4 KiB | 00m00s [ 41/750] Installing google-droid-sans- 100% | 68.8 MiB/s | 6.3 MiB | 00m00s [ 42/750] Installing hostname-0:3.25-5. 100% | 806.5 KiB/s | 91.9 KiB | 00m00s [ 43/750] Installing libdatrie-0:0.2.14 100% | 18.5 MiB/s | 94.5 KiB | 00m00s [ 44/750] Installing libthai-0:0.1.30-3 100% | 50.5 MiB/s | 826.6 KiB | 00m00s [ 45/750] Installing sombok-0:2.4.0-26. 100% | 23.6 MiB/s | 144.9 KiB | 00m00s [ 46/750] Installing emacs-filesystem-1 100% | 264.3 KiB/s | 812.0 B | 00m00s [ 47/750] Installing desktop-file-utils 100% | 3.4 MiB/s | 321.1 KiB | 00m00s [ 48/750] Installing xdg-utils-0:1.2.1- 100% | 3.7 MiB/s | 349.5 KiB | 00m00s [ 49/750] Installing xpdf-libs-1:4.06-3 100% | 74.7 MiB/s | 2.2 MiB | 00m00s [ 50/750] Installing lzo-0:2.10-17.fc45 100% | 37.1 MiB/s | 228.1 KiB | 00m00s [ 51/750] Installing pcre2-utf32-0:10.4 100% | 63.1 MiB/s | 775.1 KiB | 00m00s [ 52/750] Installing pcre2-utf16-0:10.4 100% | 58.2 MiB/s | 775.2 KiB | 00m00s [ 53/750] Installing pcre2-devel-0:10.4 100% | 14.1 MiB/s | 2.1 MiB | 00m00s [ 54/750] Installing liblerc-0:4.2.0-1. 100% | 55.7 MiB/s | 741.0 KiB | 00m00s [ 55/750] Installing dbus-libs-1:1.16.2 100% | 50.2 MiB/s | 462.8 KiB | 00m00s [ 56/750] Installing avahi-libs-0:0.9~r 100% | 38.9 MiB/s | 358.1 KiB | 00m00s [ 57/750] Installing cups-filesystem-1: 100% | 593.8 KiB/s | 1.8 KiB | 00m00s [ 58/750] Installing cups-libs-1:2.4.19 100% | 56.8 MiB/s | 988.0 KiB | 00m00s [ 59/750] Installing openjpeg-0:2.5.4-4 100% | 48.1 MiB/s | 542.2 KiB | 00m00s [ 60/750] Installing libwebp-0:1.6.0-4. 100% | 54.4 MiB/s | 947.7 KiB | 00m00s [ 61/750] Installing jbigkit-libs-0:2.1 100% | 25.5 MiB/s | 182.7 KiB | 00m00s [ 62/750] Installing libtiff-0:4.7.2-2. 100% | 59.3 MiB/s | 789.3 KiB | 00m00s [ 63/750] Installing libijs-0:0.35-27.f 100% | 33.2 MiB/s | 102.1 KiB | 00m00s [ 64/750] Installing lcms2-0:2.16-8.fc4 100% | 47.3 MiB/s | 678.8 KiB | 00m00s [ 65/750] Installing libsepol-devel-0:3 100% | 8.3 MiB/s | 128.2 KiB | 00m00s [ 66/750] Installing libselinux-devel-0 100% | 5.7 MiB/s | 156.6 KiB | 00m00s [ 67/750] Installing libcom_err-devel-0 100% | 207.7 KiB/s | 18.3 KiB | 00m00s [ 68/750] Installing keyutils-libs-deve 100% | 6.0 MiB/s | 55.2 KiB | 00m00s [ 69/750] Installing ncurses-0:6.6-3.fc 100% | 9.2 MiB/s | 965.2 KiB | 00m00s [ 70/750] Installing perl-Digest-0:1.20 100% | 9.0 MiB/s | 37.0 KiB | 00m00s [ 71/750] Installing perl-FileHandle-0: 100% | 3.2 MiB/s | 9.8 KiB | 00m00s [ 72/750] Installing perl-B-0:1.92-527. 100% | 42.1 MiB/s | 560.8 KiB | 00m00s [ 73/750] Installing perl-Digest-MD5-0: 100% | 20.5 MiB/s | 105.1 KiB | 00m00s [ 74/750] Installing perl-libnet-0:3.15 100% | 22.1 MiB/s | 293.8 KiB | 00m00s [ 75/750] Installing perl-Data-Dumper-0 100% | 19.1 MiB/s | 137.1 KiB | 00m00s [ 76/750] Installing perl-Unicode-Norma 100% | 46.8 MiB/s | 526.6 KiB | 00m00s [ 77/750] Installing perl-MIME-Base32-0 100% | 5.2 MiB/s | 32.2 KiB | 00m00s [ 78/750] Installing perl-URI-0:5.36-1. 100% | 12.3 MiB/s | 289.1 KiB | 00m00s [ 79/750] Installing perl-IO-Socket-IP- 100% | 16.6 MiB/s | 102.3 KiB | 00m00s [ 80/750] Installing perl-AutoLoader-0: 100% | 6.8 MiB/s | 21.0 KiB | 00m00s [ 81/750] Installing perl-IO-Socket-SSL 100% | 42.0 MiB/s | 731.0 KiB | 00m00s [ 82/750] Installing perl-Net-SSLeay-0: 100% | 40.2 MiB/s | 1.6 MiB | 00m00s [ 83/750] Installing perl-locale-0:1.13 100% | 2.1 MiB/s | 6.5 KiB | 00m00s [ 84/750] Installing perl-if-0:0.61.000 100% | 3.0 MiB/s | 6.2 KiB | 00m00s [ 85/750] Installing perl-Pod-Escapes-1 100% | 8.4 MiB/s | 25.9 KiB | 00m00s [ 86/750] Installing perl-File-Path-0:2 100% | 15.7 MiB/s | 64.4 KiB | 00m00s [ 87/750] Installing perl-Text-Tabs+Wra 100% | 5.8 MiB/s | 23.9 KiB | 00m00s [ 88/750] Installing perl-Time-Local-2: 100% | 8.6 MiB/s | 70.6 KiB | 00m00s [ 89/750] Installing perl-Time-HiRes-4: 100% | 18.7 MiB/s | 153.4 KiB | 00m00s [ 90/750] Installing perl-Pod-Simple-1: 100% | 31.2 MiB/s | 574.8 KiB | 00m00s [ 91/750] Installing perl-HTTP-Tiny-0:0 100% | 26.8 MiB/s | 164.5 KiB | 00m00s [ 92/750] Installing perl-IPC-Open3-0:1 100% | 9.3 MiB/s | 28.5 KiB | 00m00s [ 93/750] Installing perl-File-Temp-1:0 100% | 18.0 MiB/s | 165.5 KiB | 00m00s [ 94/750] Installing perl-Class-Struct- 100% | 8.4 MiB/s | 25.9 KiB | 00m00s [ 95/750] Installing perl-POSIX-0:2.26- 100% | 45.7 MiB/s | 327.4 KiB | 00m00s [ 96/750] Installing perl-Term-Cap-0:1. 100% | 6.0 MiB/s | 30.6 KiB | 00m00s [ 97/750] Installing perl-Term-ANSIColo 100% | 19.4 MiB/s | 99.1 KiB | 00m00s [ 98/750] Installing perl-podlators-1:6 100% | 3.2 MiB/s | 328.7 KiB | 00m00s [ 99/750] Installing perl-Pod-Perldoc-0 100% | 1.7 MiB/s | 169.4 KiB | 00m00s [100/750] Installing perl-File-stat-0:1 100% | 4.6 MiB/s | 14.2 KiB | 00m00s [101/750] Installing perl-SelectSaver-0 100% | 1.2 MiB/s | 2.5 KiB | 00m00s [102/750] Installing perl-Symbol-0:1.09 100% | 3.5 MiB/s | 7.3 KiB | 00m00s [103/750] Installing perl-Socket-4:2.04 100% | 20.6 MiB/s | 147.5 KiB | 00m00s [104/750] Installing perl-Pod-Usage-4:2 100% | 1.0 MiB/s | 87.8 KiB | 00m00s [105/750] Installing perl-overloading-0 100% | 1.8 MiB/s | 5.5 KiB | 00m00s [106/750] Installing perl-IO-0:1.56-527 100% | 21.2 MiB/s | 195.3 KiB | 00m00s [107/750] Installing perl-mro-0:1.30-52 100% | 20.0 MiB/s | 82.1 KiB | 00m00s [108/750] Installing perl-base-0:2.27-5 100% | 6.3 MiB/s | 13.0 KiB | 00m00s [109/750] Installing perl-Fcntl-0:1.20- 100% | 22.8 MiB/s | 93.4 KiB | 00m00s [110/750] Installing perl-Text-ParseWor 100% | 4.7 MiB/s | 14.6 KiB | 00m00s [111/750] Installing perl-Getopt-Std-0: 100% | 6.4 MiB/s | 13.0 KiB | 00m00s [112/750] Installing perl-Getopt-Long-1 100% | 24.0 MiB/s | 147.2 KiB | 00m00s [113/750] Installing perl-overload-0:1. 100% | 23.4 MiB/s | 72.0 KiB | 00m00s [114/750] Installing perl-Storable-1:3. 100% | 34.1 MiB/s | 244.4 KiB | 00m00s [115/750] Installing perl-vars-0:1.05-5 100% | 2.1 MiB/s | 4.3 KiB | 00m00s [116/750] Installing perl-File-Basename 100% | 7.1 MiB/s | 14.6 KiB | 00m00s [117/750] Installing perl-Errno-0:1.39- 100% | 4.3 MiB/s | 8.8 KiB | 00m00s [118/750] Installing perl-MIME-Base64-0 100% | 15.6 MiB/s | 95.8 KiB | 00m00s [119/750] Installing perl-parent-1:0.24 100% | 3.6 MiB/s | 11.0 KiB | 00m00s [120/750] Installing perl-constant-0:1. 100% | 6.7 MiB/s | 27.4 KiB | 00m00s [121/750] Installing perl-Scalar-List-U 100% | 17.0 MiB/s | 156.2 KiB | 00m00s [122/750] Installing perl-Exporter-0:5. 100% | 10.8 MiB/s | 55.5 KiB | 00m00s [123/750] Installing perl-Encode-4:3.24 100% | 30.8 MiB/s | 4.8 MiB | 00m00s [124/750] Installing perl-DynaLoader-0: 100% | 10.6 MiB/s | 32.5 KiB | 00m00s [125/750] Installing perl-PathTools-0:3 100% | 22.3 MiB/s | 228.4 KiB | 00m00s [126/750] Installing perl-Carp-0:1.54-5 100% | 4.7 MiB/s | 47.7 KiB | 00m00s [127/750] Installing perl-libs-4:5.44.0 100% | 59.0 MiB/s | 12.9 MiB | 00m00s [128/750] Installing perl-interpreter-4 100% | 2.6 MiB/s | 177.3 KiB | 00m00s [129/750] Installing perl-File-Find-0:1 100% | 2.2 MiB/s | 42.5 KiB | 00m00s [130/750] Installing perl-Try-Tiny-0:0. 100% | 11.6 MiB/s | 71.1 KiB | 00m00s [131/750] Installing perl-subs-0:1.04-5 100% | 2.5 MiB/s | 2.5 KiB | 00m00s [132/750] Installing perl-File-Copy-0:2 100% | 9.9 MiB/s | 20.2 KiB | 00m00s [133/750] Installing perl-Module-Runtim 100% | 21.0 MiB/s | 64.5 KiB | 00m00s [134/750] Installing perl-Module-Implem 100% | 12.7 MiB/s | 26.1 KiB | 00m00s [135/750] Installing perl-version-9:0.9 100% | 26.6 MiB/s | 163.2 KiB | 00m00s [136/750] Installing perl-Dist-CheckCon 100% | 10.8 MiB/s | 33.1 KiB | 00m00s [137/750] Installing perl-Sys-Hostname- 100% | 23.7 MiB/s | 72.8 KiB | 00m00s [138/750] Installing perl-Clone-0:0.50- 100% | 16.7 MiB/s | 102.9 KiB | 00m00s [139/750] Installing perl-Compress-Raw- 100% | 38.3 MiB/s | 235.5 KiB | 00m00s [140/750] Installing perl-Data-Dump-0:1 100% | 17.0 MiB/s | 52.2 KiB | 00m00s [141/750] Installing perl-Opcode-0:1.71 100% | 30.5 MiB/s | 93.8 KiB | 00m00s [142/750] Installing perl-Safe-0:2.47-5 100% | 10.1 MiB/s | 31.1 KiB | 00m00s [143/750] Installing perl-Text-Unidecod 100% | 8.4 MiB/s | 491.8 KiB | 00m00s [144/750] Installing perl-Module-Load-1 100% | 5.2 MiB/s | 15.9 KiB | 00m00s [145/750] Installing perl-I18N-Langinfo 100% | 21.4 MiB/s | 87.7 KiB | 00m00s [146/750] Installing perl-Encode-Locale 100% | 6.5 MiB/s | 20.1 KiB | 00m00s [147/750] Installing perl-TimeDate-1:2. 100% | 10.5 MiB/s | 205.0 KiB | 00m00s [148/750] Installing perl-HTTP-Date-0:6 100% | 14.9 MiB/s | 45.7 KiB | 00m00s [149/750] Installing perl-lib-0:0.65-52 100% | 8.7 MiB/s | 8.9 KiB | 00m00s [150/750] Installing perl-Text-Balanced 100% | 36.6 MiB/s | 112.6 KiB | 00m00s [151/750] Installing perl-XML-Namespace 100% | 22.5 MiB/s | 46.1 KiB | 00m00s [152/750] Installing perl-XML-SAX-Base- 100% | 42.6 MiB/s | 174.5 KiB | 00m00s [153/750] Installing perl-Devel-StackTr 100% | 16.5 MiB/s | 50.6 KiB | 00m00s [154/750] Installing perl-Date-ISO8601- 100% | 12.4 MiB/s | 25.5 KiB | 00m00s [155/750] Installing perl-Params-Util-0 100% | 20.4 MiB/s | 104.6 KiB | 00m00s [156/750] Installing perl-Sub-Install-0 100% | 12.1 MiB/s | 37.2 KiB | 00m00s [157/750] Installing perl-English-0:1.1 100% | 3.2 MiB/s | 6.6 KiB | 00m00s [158/750] Installing perl-Crypt-URandom 100% | 29.1 MiB/s | 119.2 KiB | 00m00s [159/750] Installing perl-Data-OptList- 100% | 12.7 MiB/s | 52.2 KiB | 00m00s [160/750] Installing perl-Parse-RecDesc 100% | 20.9 MiB/s | 535.4 KiB | 00m00s [161/750] Installing perl-File-Listing- 100% | 13.8 MiB/s | 42.5 KiB | 00m00s [162/750] Installing perl-Sys-Hostname- 100% | 5.4 MiB/s | 16.5 KiB | 00m00s [163/750] Installing perl-Mail-Sendmail 100% | 22.0 MiB/s | 67.6 KiB | 00m00s [164/750] Installing perl-Module-CoreLi 100% | 118.6 MiB/s | 1.3 MiB | 00m00s [165/750] Installing perl-Module-Metada 100% | 17.6 MiB/s | 71.9 KiB | 00m00s [166/750] Installing perl-Params-Valida 100% | 22.9 MiB/s | 163.8 KiB | 00m00s [167/750] Installing perl-List-SomeUtil 100% | 26.6 MiB/s | 109.0 KiB | 00m00s [168/750] Installing perl-Business-ISSN 100% | 2.8 MiB/s | 23.0 KiB | 00m00s [169/750] Installing perl-Date-Manip-0: 100% | 39.6 MiB/s | 10.9 MiB | 00m00s [170/750] Installing perl-Digest-SHA-1: 100% | 2.0 MiB/s | 138.4 KiB | 00m00s [171/750] Installing perl-Digest-HMAC-0 100% | 10.2 MiB/s | 31.5 KiB | 00m00s [172/750] Installing perl-NTLM-0:1.09-4 100% | 10.6 MiB/s | 32.7 KiB | 00m00s [173/750] Installing perl-Lingua-Transl 100% | 1.7 MiB/s | 179.3 KiB | 00m00s [174/750] Installing perl-FindBin-0:1.5 100% | 2.3 MiB/s | 7.2 KiB | 00m00s [175/750] Installing perl-Class-Inspect 100% | 11.6 MiB/s | 59.3 KiB | 00m00s [176/750] Installing perl-File-ShareDir 100% | 8.3 MiB/s | 59.2 KiB | 00m00s [177/750] Installing perl-WWW-RobotRule 100% | 8.4 MiB/s | 42.8 KiB | 00m00s [178/750] Installing perl-HTML-Tagset-0 100% | 6.4 MiB/s | 19.7 KiB | 00m00s [179/750] Installing perl-IO-HTML-0:1.0 100% | 3.3 MiB/s | 46.8 KiB | 00m00s [180/750] Installing perl-Compress-Raw- 100% | 13.1 MiB/s | 107.5 KiB | 00m00s [181/750] Installing perl-IO-Compress-0 100% | 9.6 MiB/s | 1.1 MiB | 00m00s [182/750] Installing perl-Net-HTTP-0:6. 100% | 12.8 MiB/s | 78.6 KiB | 00m00s [183/750] Installing perl-DirHandle-0:1 100% | 1.2 MiB/s | 3.8 KiB | 00m00s [184/750] Installing perl-Filter-2:1.65 100% | 22.8 MiB/s | 372.8 KiB | 00m00s [185/750] Installing perl-encoding-4:3. 100% | 29.6 MiB/s | 151.4 KiB | 00m00s [186/750] Installing perl-open-0:1.13-5 100% | 3.8 MiB/s | 11.7 KiB | 00m00s [187/750] Installing perl-Class-Accesso 100% | 8.4 MiB/s | 42.9 KiB | 00m00s [188/750] Installing perl-File-Slurper- 100% | 7.3 MiB/s | 30.0 KiB | 00m00s [189/750] Installing perl-IO-String-0:1 100% | 5.8 MiB/s | 17.8 KiB | 00m00s [190/750] Installing perl-IPC-Run3-0:0. 100% | 8.8 MiB/s | 63.3 KiB | 00m00s [191/750] Installing perl-Regexp-Common 100% | 25.7 MiB/s | 474.0 KiB | 00m00s [192/750] Installing perl-Sort-Key-0:1. 100% | 8.8 MiB/s | 116.8 KiB | 00m00s [193/750] Installing perl-Text-CSV-0:2. 100% | 51.2 MiB/s | 367.0 KiB | 00m00s [194/750] Installing perl-Text-Roman-0: 100% | 5.6 MiB/s | 34.7 KiB | 00m00s [195/750] Installing perl-Unicode-Colla 100% | 50.9 MiB/s | 4.4 MiB | 00m00s [196/750] Installing perl-XML-Writer-0: 100% | 9.6 MiB/s | 68.6 KiB | 00m00s [197/750] Installing perl-autovivificat 100% | 15.5 MiB/s | 95.4 KiB | 00m00s [198/750] Installing perl-Business-ISBN 100% | 30.7 MiB/s | 314.9 KiB | 00m00s [199/750] Installing perl-Business-ISBN 100% | 8.1 MiB/s | 58.2 KiB | 00m00s [200/750] Installing perl-Tie-Cycle-0:1 100% | 6.2 MiB/s | 25.5 KiB | 00m00s [201/750] Installing perl-Business-ISMN 100% | 9.4 MiB/s | 38.5 KiB | 00m00s [202/750] Installing perl-Class-Singlet 100% | 10.1 MiB/s | 41.4 KiB | 00m00s [203/750] Installing perl-ExtUtils-MM-U 100% | 1.2 MiB/s | 3.7 KiB | 00m00s [204/750] Installing perl-Mozilla-CA-0: 100% | 4.3 MiB/s | 17.8 KiB | 00m00s [205/750] Installing perl-List-UtilsBy- 100% | 14.0 MiB/s | 57.2 KiB | 00m00s [206/750] Installing perl-List-AllUtils 100% | 26.5 MiB/s | 135.9 KiB | 00m00s [207/750] Installing perl-IPC-SysV-0:2. 100% | 16.2 MiB/s | 116.3 KiB | 00m00s [208/750] Installing perl-Getopt-Tabula 100% | 17.2 MiB/s | 88.1 KiB | 00m00s [209/750] Installing perl-Text-BibTeX-0 100% | 7.0 MiB/s | 750.4 KiB | 00m00s [210/750] Installing perl-MIME-Charset- 100% | 13.1 MiB/s | 107.3 KiB | 00m00s [211/750] Installing perl-Unicode-LineB 100% | 14.3 MiB/s | 321.2 KiB | 00m00s [212/750] Installing perl-Number-Compar 100% | 1.8 MiB/s | 5.4 KiB | 00m00s [213/750] Installing perl-Text-Glob-0:0 100% | 3.0 MiB/s | 9.3 KiB | 00m00s [214/750] Installing perl-File-Find-Rul 100% | 423.9 KiB/s | 44.5 KiB | 00m00s [215/750] Installing perl-Data-Compare- 100% | 9.5 MiB/s | 58.1 KiB | 00m00s [216/750] Installing perl-Clone-PP-0:1. 100% | 4.5 MiB/s | 13.9 KiB | 00m00s [217/750] Installing perl-MRO-Compat-0: 100% | 7.3 MiB/s | 44.9 KiB | 00m00s [218/750] Installing perl-XString-0:0.0 100% | 11.0 MiB/s | 90.3 KiB | 00m00s [219/750] Installing perl-Convert-ASN1- 100% | 18.8 MiB/s | 173.4 KiB | 00m00s [220/750] Installing perl-Mail-Sender-1 100% | 26.4 MiB/s | 162.5 KiB | 00m00s [221/750] Installing perl-Sys-Syslog-0: 100% | 15.7 MiB/s | 144.3 KiB | 00m00s [222/750] Installing perl-Tie-RefHash-0 100% | 9.1 MiB/s | 37.4 KiB | 00m00s [223/750] Installing perl-autodie-0:2.3 100% | 5.9 MiB/s | 219.2 KiB | 00m00s [224/750] Installing perl-Class-Data-In 100% | 2.3 MiB/s | 7.0 KiB | 00m00s [225/750] Installing perl-Exception-Cla 100% | 13.2 MiB/s | 94.6 KiB | 00m00s [226/750] Installing perl-Class-Method- 100% | 2.7 MiB/s | 109.6 KiB | 00m00s [227/750] Installing perl-Role-Tiny-0:2 100% | 10.6 MiB/s | 65.2 KiB | 00m00s [228/750] Installing perl-GSSAPI-0:0.28 100% | 16.0 MiB/s | 180.0 KiB | 00m00s [229/750] Installing perl-Email-Date-Fo 100% | 6.3 MiB/s | 26.0 KiB | 00m00s [230/750] Installing perl-MIME-Lite-0:3 100% | 28.9 MiB/s | 236.7 KiB | 00m00s [231/750] Installing perl-Net-SMTP-SSL- 100% | 1.3 MiB/s | 5.3 KiB | 00m00s [232/750] Installing perl-MailTools-0:2 100% | 10.9 MiB/s | 212.5 KiB | 00m00s [233/750] Installing perl-PadWalker-0:2 100% | 14.0 MiB/s | 86.1 KiB | 00m00s [234/750] Installing perl-Devel-Caller- 100% | 13.1 MiB/s | 80.7 KiB | 00m00s [235/750] Installing perl-Devel-LexAlia 100% | 14.2 MiB/s | 72.5 KiB | 00m00s [236/750] Installing perl-Package-Gener 100% | 6.2 MiB/s | 31.5 KiB | 00m00s [237/750] Installing perl-Sub-Exporter- 100% | 8.6 MiB/s | 201.9 KiB | 00m00s [238/750] Installing perl-Sub-Exporter- 100% | 7.0 MiB/s | 28.9 KiB | 00m00s [239/750] Installing perl-Devel-GlobalD 100% | 3.7 MiB/s | 19.0 KiB | 00m00s [240/750] Installing perl-Hash-Util-Fie 100% | 17.6 MiB/s | 108.1 KiB | 00m00s [241/750] Installing perl-Variable-Magi 100% | 19.2 MiB/s | 157.3 KiB | 00m00s [242/750] Installing perl-B-Hooks-EndOf 100% | 6.7 MiB/s | 75.1 KiB | 00m00s [243/750] Installing perl-Package-Stash 100% | 12.0 MiB/s | 98.5 KiB | 00m00s [244/750] Installing perl-Package-Stash 100% | 618.7 KiB/s | 58.2 KiB | 00m00s [245/750] Installing perl-namespace-cle 100% | 4.0 MiB/s | 44.6 KiB | 00m00s [246/750] Installing perl-namespace-aut 100% | 8.8 MiB/s | 45.0 KiB | 00m00s [247/750] Installing perl-deprecate-0:0 100% | 2.3 MiB/s | 7.0 KiB | 00m00s [248/750] Installing perl-Text-Soundex- 100% | 14.6 MiB/s | 104.6 KiB | 00m00s [249/750] Installing perl-Ref-Util-XS-0 100% | 11.2 MiB/s | 80.2 KiB | 00m00s [250/750] Installing perl-Ref-Util-0:0. 100% | 6.5 MiB/s | 33.2 KiB | 00m00s [251/750] Installing perl-DynaLoader-Fu 100% | 6.8 MiB/s | 20.7 KiB | 00m00s [252/750] Installing perl-Devel-CallChe 100% | 14.8 MiB/s | 90.7 KiB | 00m00s [253/750] Installing perl-Params-Classi 100% | 15.8 MiB/s | 97.2 KiB | 00m00s [254/750] Installing perl-DateTime-Time 100% | 7.2 MiB/s | 29.6 KiB | 00m00s [255/750] Installing perl-DateTime-Time 100% | 6.3 MiB/s | 25.8 KiB | 00m00s [256/750] Installing perl-Math-Complex- 100% | 16.8 MiB/s | 86.0 KiB | 00m00s [257/750] Installing perl-Math-BigInt-1 100% | 50.7 MiB/s | 1.1 MiB | 00m00s [258/750] Installing perl-Data-Uniqid-0 100% | 1.4 MiB/s | 5.8 KiB | 00m00s [259/750] Installing perl-JSON-0:4.11-2 100% | 29.3 MiB/s | 270.4 KiB | 00m00s [260/750] Installing perl-JSON-PP-1:4.1 100% | 1.5 MiB/s | 144.5 KiB | 00m00s [261/750] Installing perl-I18N-LangTags 100% | 16.4 MiB/s | 83.8 KiB | 00m00s [262/750] Installing perl-Locale-Makete 100% | 24.3 MiB/s | 173.9 KiB | 00m00s [263/750] Installing perl-Locale-Makete 100% | 4.4 MiB/s | 13.5 KiB | 00m00s [264/750] Installing perl-Params-Check- 100% | 7.0 MiB/s | 28.6 KiB | 00m00s [265/750] Installing perl-Module-Load-C 100% | 5.8 MiB/s | 29.9 KiB | 00m00s [266/750] Installing perl-IPC-Cmd-2:1.0 100% | 16.8 MiB/s | 85.8 KiB | 00m00s [267/750] Installing perl-File-Compare- 100% | 3.0 MiB/s | 6.2 KiB | 00m00s [268/750] Installing perl-Tie-0:4.6-527 100% | 6.6 MiB/s | 33.9 KiB | 00m00s [269/750] Installing perl-Authen-SASL-0 100% | 10.5 MiB/s | 139.2 KiB | 00m00s [270/750] Installing perl-meta-notation 100% | 763.0 KiB/s | 2.3 KiB | 00m00s [271/750] Installing perl-sigtrap-0:1.1 100% | 3.7 MiB/s | 11.5 KiB | 00m00s [272/750] Installing perl-Unicode-UCD-0 100% | 28.9 MiB/s | 207.0 KiB | 00m00s [273/750] Installing jbig2dec-libs-0:0. 100% | 29.1 MiB/s | 238.3 KiB | 00m00s [274/750] Installing adobe-mappings-pdf 100% | 64.7 MiB/s | 4.4 MiB | 00m00s [275/750] Installing teckit-0:2.5.13-3. 100% | 19.8 MiB/s | 2.4 MiB | 00m00s [276/750] Installing google-noto-fonts- 100% | 4.5 MiB/s | 18.5 KiB | 00m00s [277/750] Installing google-noto-sans-v 100% | 63.2 MiB/s | 1.4 MiB | 00m00s [278/750] Installing default-fonts-core 100% | 1.6 MiB/s | 18.2 KiB | 00m00s [279/750] Installing fontconfig-0:2.18. 100% | 1.0 MiB/s | 1.7 MiB | 00m02s [280/750] Installing ruby-libs-0:4.0.6- 100% | 61.8 MiB/s | 18.5 MiB | 00m00s [281/750] Installing ruby-0:4.0.6-37.fc 100% | 1.6 MiB/s | 155.4 KiB | 00m00s [282/750] Installing rubypick-0:1.1.1-2 100% | 56.3 KiB/s | 5.1 KiB | 00m00s [283/750] Installing libXau-0:1.0.12-5. 100% | 14.9 MiB/s | 122.0 KiB | 00m00s [284/750] Installing libxcb-0:1.17.0-8. 100% | 58.5 MiB/s | 2.2 MiB | 00m00s [285/750] Installing mailcap-0:2.1.54-1 100% | 17.0 MiB/s | 87.1 KiB | 00m00s [286/750] Installing perl-LWP-MediaType 100% | 15.7 MiB/s | 80.5 KiB | 00m00s [287/750] Installing perl-HTTP-Message- 100% | 19.6 MiB/s | 221.2 KiB | 00m00s [288/750] Installing perl-HTML-Parser-0 100% | 22.4 MiB/s | 297.9 KiB | 00m00s [289/750] Installing perl-HTTP-Negotiat 100% | 7.0 MiB/s | 28.7 KiB | 00m00s [290/750] Installing perltidy-0:2026082 100% | 30.1 MiB/s | 4.5 MiB | 00m00s [291/750] Installing perl-Eval-Closure- 100% | 6.8 MiB/s | 34.6 KiB | 00m00s [292/750] Installing perl-Params-Valida 100% | 11.5 MiB/s | 94.2 KiB | 00m00s [293/750] Installing perl-Specio-0:0.53 100% | 11.8 MiB/s | 349.2 KiB | 00m00s [294/750] Installing perl-DateTime-Time 100% | 37.4 MiB/s | 6.2 MiB | 00m00s [295/750] Installing perl-DateTime-Loca 100% | 27.6 MiB/s | 25.7 MiB | 00m01s [296/750] Installing perl-DateTime-2:1. 100% | 30.1 MiB/s | 431.7 KiB | 00m00s [297/750] Installing perl-Log-Dispatch- 100% | 12.2 MiB/s | 150.0 KiB | 00m00s [298/750] Installing perl-Log-Dispatch- 100% | 10.6 MiB/s | 54.5 KiB | 00m00s [299/750] Installing perl-DateTime-Cale 100% | 8.4 MiB/s | 34.3 KiB | 00m00s [300/750] Installing perl-DateTime-Form 100% | 13.8 MiB/s | 98.9 KiB | 00m00s [301/750] Installing perl-DateTime-Form 100% | 10.4 MiB/s | 213.0 KiB | 00m00s [302/750] Installing perl-HTTP-Cookies- 100% | 11.5 MiB/s | 82.3 KiB | 00m00s [303/750] Installing perl-libwww-perl-0 100% | 4.3 MiB/s | 489.7 KiB | 00m00s [304/750] Installing perl-XML-Parser-0: 100% | 27.9 MiB/s | 770.3 KiB | 00m00s [305/750] Installing perl-XML-XPath-0:1 100% | 2.1 MiB/s | 210.5 KiB | 00m00s [306/750] Installing texlive-unicode-da 100% | 53.2 MiB/s | 3.4 MiB | 00m00s [307/750] Installing texlive-tex-ini-fi 100% | 2.5 MiB/s | 17.6 KiB | 00m00s [308/750] Installing texlive-plain-12:s 100% | 12.3 MiB/s | 113.6 KiB | 00m00s [309/750] Installing texlive-knuth-lib- 100% | 10.4 MiB/s | 106.3 KiB | 00m00s [310/750] Installing texlive-hyphen-bas 100% | 13.9 MiB/s | 85.5 KiB | 00m00s [311/750] Installing texlive-hyph-utf8- 100% | 32.0 MiB/s | 393.2 KiB | 00m00s [312/750] Installing texlive-graphics-d 100% | 14.2 MiB/s | 101.7 KiB | 00m00s [313/750] Installing texlive-etex-12:sv 100% | 36.5 MiB/s | 523.6 KiB | 00m00s [314/750] Installing texlive-cm-12:svn5 100% | 19.5 MiB/s | 1.0 MiB | 00m00s [315/750] Installing texlive-luatex-12: 100% | 51.1 MiB/s | 10.2 MiB | 00m00s [316/750] Installing texlive-gsftopk-12 100% | 881.2 KiB/s | 80.2 KiB | 00m00s [317/750] Installing texlive-texlive.in 100% | 9.7 MiB/s | 1.0 MiB | 00m00s [318/750] Installing texlive-texlive-sc 100% | 3.1 MiB/s | 351.9 KiB | 00m00s [319/750] Installing texlive-kpathsea-1 100% | 17.5 MiB/s | 2.3 MiB | 00m00s [320/750] Installing texlive-iftex-12:s 100% | 43.7 MiB/s | 268.6 KiB | 00m00s [321/750] Installing texlive-infwarerr- 100% | 50.1 MiB/s | 307.5 KiB | 00m00s [322/750] Installing texlive-ltxcmds-12 100% | 62.5 MiB/s | 447.7 KiB | 00m00s [323/750] Installing texlive-pdftexcmds 100% | 59.4 MiB/s | 425.6 KiB | 00m00s [324/750] Installing texlive-amsmath-12 100% | 93.9 MiB/s | 3.0 MiB | 00m00s [325/750] Installing texlive-atbegshi-1 100% | 54.3 MiB/s | 445.1 KiB | 00m00s [326/750] Installing texlive-kvsetkeys- 100% | 59.8 MiB/s | 428.8 KiB | 00m00s [327/750] Installing texlive-etexcmds-1 100% | 26.2 MiB/s | 322.3 KiB | 00m00s [328/750] Installing texlive-amsfonts-1 100% | 40.0 MiB/s | 7.3 MiB | 00m00s [329/750] Installing texlive-atveryend- 100% | 49.5 MiB/s | 304.3 KiB | 00m00s [330/750] Installing texlive-auxhook-12 100% | 42.3 MiB/s | 303.2 KiB | 00m00s [331/750] Installing texlive-latex-font 100% | 10.2 MiB/s | 136.0 KiB | 00m00s [332/750] Installing texlive-url-12:svn 100% | 29.4 MiB/s | 300.9 KiB | 00m00s [333/750] Installing texlive-pdfescape- 100% | 61.4 MiB/s | 377.2 KiB | 00m00s [334/750] Installing texlive-everyshi-1 100% | 38.8 MiB/s | 158.9 KiB | 00m00s [335/750] Installing texlive-intcalc-12 100% | 66.0 MiB/s | 472.8 KiB | 00m00s [336/750] Installing texlive-kvdefineke 100% | 51.4 MiB/s | 315.5 KiB | 00m00s [337/750] Installing texlive-l3backend- 100% | 77.5 MiB/s | 1.1 MiB | 00m00s [338/750] Installing texlive-bigintcalc 100% | 72.1 MiB/s | 516.8 KiB | 00m00s [339/750] Installing texlive-uniquecoun 100% | 16.1 MiB/s | 313.5 KiB | 00m00s [340/750] Installing texlive-fp-12:svn7 100% | 39.6 MiB/s | 364.7 KiB | 00m00s [341/750] Installing texlive-firstaid-1 100% | 54.8 MiB/s | 336.5 KiB | 00m00s [342/750] Installing texlive-letltxmacr 100% | 50.9 MiB/s | 312.6 KiB | 00m00s [343/750] Installing texlive-lua-uni-al 100% | 22.8 MiB/s | 163.2 KiB | 00m00s [344/750] Installing texlive-l3kernel-1 100% | 107.7 MiB/s | 15.2 MiB | 00m00s [345/750] Installing texlive-l3packages 100% | 86.3 MiB/s | 1.9 MiB | 00m00s [346/750] Installing texlive-etex-pkg-1 100% | 9.5 MiB/s | 38.8 KiB | 00m00s [347/750] Installing texlive-etoolbox-1 100% | 50.8 MiB/s | 364.3 KiB | 00m00s [348/750] Installing texlive-ncctools-1 100% | 86.7 MiB/s | 3.1 MiB | 00m00s [349/750] Installing texlive-bigfoot-12 100% | 77.1 MiB/s | 868.2 KiB | 00m00s [350/750] Installing texlive-multido-12 100% | 26.9 MiB/s | 165.0 KiB | 00m00s [351/750] Installing texlive-xstring-12 100% | 80.0 MiB/s | 901.1 KiB | 00m00s [352/750] Installing texlive-ulem-12:sv 100% | 36.8 MiB/s | 188.2 KiB | 00m00s [353/750] Installing texlive-fancyhdr-1 100% | 37.3 MiB/s | 1.3 MiB | 00m00s [354/750] Installing texlive-grfext-12: 100% | 53.6 MiB/s | 329.1 KiB | 00m00s [355/750] Installing texlive-stringenc- 100% | 58.6 MiB/s | 1.1 MiB | 00m00s [356/750] Installing texlive-refcount-1 100% | 56.8 MiB/s | 349.2 KiB | 00m00s [357/750] Installing texlive-booktabs-1 100% | 51.4 MiB/s | 316.1 KiB | 00m00s [358/750] Installing texlive-everysel-1 100% | 64.1 MiB/s | 459.4 KiB | 00m00s [359/750] Installing texlive-float-12:s 100% | 31.5 MiB/s | 161.4 KiB | 00m00s [360/750] Installing texlive-setspace-1 100% | 46.4 MiB/s | 237.6 KiB | 00m00s [361/750] Installing texlive-latexconfi 100% | 1.8 MiB/s | 23.8 KiB | 00m00s [362/750] Installing texlive-lm-12:svn7 100% | 74.6 MiB/s | 43.0 MiB | 00m01s [363/750] Installing texlive-zapfding-1 100% | 4.5 MiB/s | 88.0 KiB | 00m00s [364/750] Installing texlive-ec-12:svn2 100% | 11.9 MiB/s | 2.8 MiB | 00m00s [365/750] Installing texlive-lua-alt-ge 100% | 2.8 MiB/s | 17.2 KiB | 00m00s [366/750] Installing texlive-tex-12:svn 100% | 5.6 MiB/s | 526.4 KiB | 00m00s [367/750] Installing texlive-stmaryrd-1 100% | 27.3 MiB/s | 446.8 KiB | 00m00s [368/750] Installing texlive-wasysym-12 100% | 31.8 MiB/s | 195.6 KiB | 00m00s [369/750] Installing texlive-svn-prov-1 100% | 44.5 MiB/s | 318.9 KiB | 00m00s [370/750] Installing texlive-everyhook- 100% | 34.1 MiB/s | 139.6 KiB | 00m00s [371/750] Installing texlive-footmisc-1 100% | 71.7 MiB/s | 734.4 KiB | 00m00s [372/750] Installing texlive-xpatch-12: 100% | 59.6 MiB/s | 488.6 KiB | 00m00s [373/750] Installing texlive-tagpdf-12: 100% | 84.5 MiB/s | 3.8 MiB | 00m00s [374/750] Installing texlive-bitset-12: 100% | 64.8 MiB/s | 663.5 KiB | 00m00s [375/750] Installing texlive-dvips-12:s 100% | 13.6 MiB/s | 1.7 MiB | 00m00s [376/750] Installing texlive-transparen 100% | 49.3 MiB/s | 302.8 KiB | 00m00s [377/750] Installing texlive-hopatch-12 100% | 56.5 MiB/s | 347.2 KiB | 00m00s [378/750] Installing texlive-hycolor-12 100% | 57.6 MiB/s | 413.1 KiB | 00m00s [379/750] Installing texlive-enumitem-1 100% | 7.1 MiB/s | 269.5 KiB | 00m00s [380/750] Installing texlive-texlive-sc 100% | 1.2 MiB/s | 115.7 KiB | 00m00s [381/750] Installing texlive-anysize-12 100% | 10.2 MiB/s | 52.0 KiB | 00m00s [382/750] Installing texlive-euenc-12:s 100% | 26.7 MiB/s | 191.3 KiB | 00m00s [383/750] Installing texlive-euler-12:s 100% | 45.4 MiB/s | 278.8 KiB | 00m00s [384/750] Installing texlive-fancybox-1 100% | 51.4 MiB/s | 368.3 KiB | 00m00s [385/750] Installing texlive-index-12:s 100% | 45.3 MiB/s | 324.7 KiB | 00m00s [386/750] Installing texlive-amscls-12: 100% | 76.0 MiB/s | 1.4 MiB | 00m00s [387/750] Installing texlive-graphics-c 100% | 1.3 MiB/s | 5.2 KiB | 00m00s [388/750] Installing texlive-lm-math-12 100% | 52.0 MiB/s | 851.3 KiB | 00m00s [389/750] Installing texlive-extractbb- 100% | 504.9 KiB/s | 42.4 KiB | 00m00s [390/750] Installing texlive-glyphlist- 100% | 22.2 MiB/s | 91.1 KiB | 00m00s [391/750] Installing texlive-modes-12:s 100% | 23.3 MiB/s | 382.4 KiB | 00m00s [392/750] Installing texlive-cm-super-1 100% | 90.9 MiB/s | 65.2 MiB | 00m01s [393/750] Installing texlive-symbol-12: 100% | 4.7 MiB/s | 87.3 KiB | 00m00s [394/750] Installing texlive-paralist-1 100% | 41.2 MiB/s | 253.2 KiB | 00m00s [395/750] Installing texlive-placeins-1 100% | 42.4 MiB/s | 260.2 KiB | 00m00s [396/750] Installing texlive-dehyph-12: 100% | 29.4 MiB/s | 241.2 KiB | 00m00s [397/750] Installing texlive-pdftex-12: 100% | 30.3 MiB/s | 7.3 MiB | 00m00s [398/750] Installing texlive-mptopdf-12 100% | 1.7 MiB/s | 153.5 KiB | 00m00s [399/750] Installing tex-preview-0:14.1 100% | 43.3 MiB/s | 398.8 KiB | 00m00s [400/750] Installing texlive-xetexconfi 100% | 6.4 MiB/s | 19.7 KiB | 00m00s [401/750] Installing texlive-fpl-12:svn 100% | 56.7 MiB/s | 696.5 KiB | 00m00s [402/750] Installing texlive-marvosym-1 100% | 41.2 MiB/s | 675.8 KiB | 00m00s [403/750] Installing texlive-palatino-1 100% | 22.1 MiB/s | 1.1 MiB | 00m00s [404/750] Installing texlive-wasy-12:sv 100% | 38.7 MiB/s | 475.1 KiB | 00m00s [405/750] Installing texlive-xesearch-1 100% | 59.2 MiB/s | 727.5 KiB | 00m00s [406/750] Installing texlive-adobemappi 100% | 64.9 MiB/s | 20.1 MiB | 00m00s [407/750] Installing texlive-ipaex-12:s 100% | 76.4 MiB/s | 40.6 MiB | 00m01s [408/750] Installing texlive-ptex-base- 100% | 8.7 MiB/s | 44.6 KiB | 00m00s [409/750] Installing texlive-l3backend- 100% | 77.5 MiB/s | 1.1 MiB | 00m00s [410/750] Installing texlive-l3kernel-d 100% | 100.0 MiB/s | 15.2 MiB | 00m00s [411/750] Installing texlive-ptex-fonts 100% | 65.8 MiB/s | 4.8 MiB | 00m00s [412/750] Installing texlive-wasy-type1 100% | 32.9 MiB/s | 336.7 KiB | 00m00s [413/750] Installing texlive-mathpazo-1 100% | 33.3 MiB/s | 545.9 KiB | 00m00s [414/750] Installing texlive-ragged2e-1 100% | 71.1 MiB/s | 801.2 KiB | 00m00s [415/750] Installing texlive-mfirstuc-1 100% | 69.1 MiB/s | 1.1 MiB | 00m00s [416/750] Installing texlive-interchar- 100% | 23.7 MiB/s | 145.8 KiB | 00m00s [417/750] Installing texlive-regexpatch 100% | 61.9 MiB/s | 570.7 KiB | 00m00s [418/750] Installing texlive-l3experime 100% | 86.0 MiB/s | 1.6 MiB | 00m00s [419/750] Installing texlive-hypcap-12: 100% | 44.4 MiB/s | 318.1 KiB | 00m00s [420/750] Installing texlive-euro-12:sv 100% | 17.1 MiB/s | 263.4 KiB | 00m00s [421/750] Installing texlive-alphalph-1 100% | 52.6 MiB/s | 377.1 KiB | 00m00s [422/750] Installing texlive-pagesel-12 100% | 49.7 MiB/s | 356.1 KiB | 00m00s [423/750] Installing texlive-xurl-12:sv 100% | 5.8 MiB/s | 77.4 KiB | 00m00s [424/750] Installing texlive-catchfile- 100% | 44.6 MiB/s | 320.0 KiB | 00m00s [425/750] Installing texlive-ucharclass 100% | 28.3 MiB/s | 203.0 KiB | 00m00s [426/750] Installing texlive-unisugar-1 100% | 48.0 MiB/s | 540.6 KiB | 00m00s [427/750] Installing texlive-cite-12:sv 100% | 34.1 MiB/s | 314.7 KiB | 00m00s [428/750] Installing texlive-cmap-12:sv 100% | 8.7 MiB/s | 53.2 KiB | 00m00s [429/750] Installing texlive-extsizes-1 100% | 37.7 MiB/s | 347.6 KiB | 00m00s [430/750] Installing texlive-footnotehy 100% | 23.0 MiB/s | 117.6 KiB | 00m00s [431/750] Installing texlive-latexbug-1 100% | 46.8 MiB/s | 287.3 KiB | 00m00s [432/750] Installing texlive-ltx-talk-1 100% | 36.9 MiB/s | 1.2 MiB | 00m00s [433/750] Installing texlive-lua-unicod 100% | 5.2 MiB/s | 279.9 KiB | 00m00s [434/750] Installing texlive-lwarp-12:s 100% | 16.4 MiB/s | 4.9 MiB | 00m00s [435/750] Installing texlive-mdwtools-1 100% | 59.9 MiB/s | 2.1 MiB | 00m00s [436/750] Installing texlive-memoir-12: 100% | 86.6 MiB/s | 4.9 MiB | 00m00s [437/750] Installing texlive-ntgclass-1 100% | 91.5 MiB/s | 2.4 MiB | 00m00s [438/750] Installing texlive-rcs-12:svn 100% | 33.7 MiB/s | 241.4 KiB | 00m00s [439/750] Installing texlive-sansmath-1 100% | 38.7 MiB/s | 197.9 KiB | 00m00s [440/750] Installing texlive-section-12 100% | 57.5 MiB/s | 411.9 KiB | 00m00s [441/750] Installing texlive-sepnum-12: 100% | 52.0 MiB/s | 372.9 KiB | 00m00s [442/750] Installing texlive-textcase-1 100% | 40.7 MiB/s | 250.0 KiB | 00m00s [443/750] Installing texlive-ucharcat-1 100% | 34.6 MiB/s | 177.0 KiB | 00m00s [444/750] Installing texlive-fix2col-12 100% | 38.4 MiB/s | 235.7 KiB | 00m00s [445/750] Installing texlive-mfnfss-12: 100% | 31.0 MiB/s | 508.2 KiB | 00m00s [446/750] Installing texlive-pslatex-12 100% | 6.3 MiB/s | 39.0 KiB | 00m00s [447/750] Installing texlive-pspicture- 100% | 17.4 MiB/s | 89.3 KiB | 00m00s [448/750] Installing texlive-finstrut-1 100% | 38.0 MiB/s | 233.2 KiB | 00m00s [449/750] Installing texlive-luabidi-12 100% | 30.9 MiB/s | 189.8 KiB | 00m00s [450/750] Installing texlive-makecmds-1 100% | 30.1 MiB/s | 154.1 KiB | 00m00s [451/750] Installing texlive-unibidi-lu 100% | 58.8 MiB/s | 782.9 KiB | 00m00s [452/750] Installing texlive-chicago-12 100% | 11.9 MiB/s | 48.6 KiB | 00m00s [453/750] Installing texlive-pdfcolmk-1 100% | 5.0 MiB/s | 20.7 KiB | 00m00s [454/750] Installing texlive-hyphen-eng 100% | 3.7 MiB/s | 179.2 KiB | 00m00s [455/750] Installing texlive-babel-engl 100% | 21.3 MiB/s | 174.6 KiB | 00m00s [456/750] Installing texlive-bibtex-12: 100% | 10.8 MiB/s | 1.3 MiB | 00m00s [457/750] Installing texlive-colorprofi 100% | 27.1 MiB/s | 277.1 KiB | 00m00s [458/750] Installing texlive-enctex-12: 100% | 31.6 MiB/s | 582.0 KiB | 00m00s [459/750] Installing texlive-hyphenex-1 100% | 5.3 MiB/s | 27.1 KiB | 00m00s [460/750] Installing texlive-knuth-loca 100% | 10.0 MiB/s | 112.9 KiB | 00m00s [461/750] Installing texlive-luahbtex-1 100% | 58.5 MiB/s | 7.3 MiB | 00m00s [462/750] Installing texlive-makeindex- 100% | 7.4 MiB/s | 523.6 KiB | 00m00s [463/750] Installing texlive-mflogo-12: 100% | 45.5 MiB/s | 279.9 KiB | 00m00s [464/750] Installing texlive-mfware-12: 100% | 6.1 MiB/s | 426.8 KiB | 00m00s [465/750] Installing texlive-texlive-co 100% | 60.5 MiB/s | 681.5 KiB | 00m00s [466/750] Installing texlive-texlive-en 100% | 80.5 MiB/s | 6.2 MiB | 00m00s [467/750] Installing texlive-texlive-ms 100% | 111.4 MiB/s | 1.4 MiB | 00m00s [468/750] Installing texlive-epstopdf-1 100% | 733.8 KiB/s | 47.0 KiB | 00m00s [469/750] Installing texlive-beton-12:s 100% | 41.3 MiB/s | 126.9 KiB | 00m00s [470/750] Installing texlive-citeref-12 100% | 23.9 MiB/s | 73.5 KiB | 00m00s [471/750] Installing texlive-natbib-12: 100% | 87.3 MiB/s | 625.6 KiB | 00m00s [472/750] Installing texlive-parallel-1 100% | 43.6 MiB/s | 178.7 KiB | 00m00s [473/750] Installing texlive-lualibs-12 100% | 72.7 MiB/s | 893.6 KiB | 00m00s [474/750] Installing texlive-changepage 100% | 60.8 MiB/s | 373.4 KiB | 00m00s [475/750] Installing texlive-notoccite- 100% | 37.9 MiB/s | 232.9 KiB | 00m00s [476/750] Installing texlive-latex-base 100% | 135.1 MiB/s | 51.5 MiB | 00m00s [477/750] Installing texlive-ntheorem-1 100% | 65.0 MiB/s | 532.6 KiB | 00m00s [478/750] Installing texlive-minitoc-12 100% | 101.1 MiB/s | 9.6 MiB | 00m00s [479/750] Installing texlive-hypdoc-12: 100% | 70.5 MiB/s | 361.1 KiB | 00m00s [480/750] Installing texlive-hyperref-1 100% | 71.5 MiB/s | 5.4 MiB | 00m00s [481/750] Installing texlive-graphics-1 100% | 89.1 MiB/s | 3.1 MiB | 00m00s [482/750] Installing texlive-tools-12:s 100% | 69.7 MiB/s | 8.4 MiB | 00m00s [483/750] Installing texlive-kvoptions- 100% | 53.9 MiB/s | 551.6 KiB | 00m00s [484/750] Installing texlive-epstopdf-p 100% | 47.4 MiB/s | 388.0 KiB | 00m00s [485/750] Installing texlive-gettitlest 100% | 47.5 MiB/s | 340.1 KiB | 00m00s [486/750] Installing texlive-rerunfilec 100% | 44.2 MiB/s | 362.1 KiB | 00m00s [487/750] Installing texlive-xkeyval-12 100% | 51.2 MiB/s | 681.6 KiB | 00m00s [488/750] Installing texlive-psnfss-12: 100% | 8.1 MiB/s | 431.1 KiB | 00m00s [489/750] Installing texlive-latex-12:s 100% | 96.8 MiB/s | 48.9 MiB | 00m01s [490/750] Installing texlive-tipa-12:sv 100% | 56.8 MiB/s | 6.5 MiB | 00m00s [491/750] Installing texlive-xunicode-1 100% | 36.0 MiB/s | 221.1 KiB | 00m00s [492/750] Installing texlive-hologo-12: 100% | 43.9 MiB/s | 674.3 KiB | 00m00s [493/750] Installing texlive-mathtools- 100% | 84.2 MiB/s | 1.3 MiB | 00m00s [494/750] Installing texlive-colortbl-1 100% | 56.6 MiB/s | 696.1 KiB | 00m00s [495/750] Installing texlive-xcolor-12: 100% | 47.7 MiB/s | 1.1 MiB | 00m00s [496/750] Installing texlive-pgf-12:svn 100% | 55.8 MiB/s | 25.0 MiB | 00m00s [497/750] Installing texlive-filehook-1 100% | 35.9 MiB/s | 367.3 KiB | 00m00s [498/750] Installing texlive-currfile-1 100% | 30.1 MiB/s | 215.4 KiB | 00m00s [499/750] Installing texlive-jknapltx-1 100% | 2.3 MiB/s | 60.1 KiB | 00m00s [500/750] Installing texlive-geometry-1 100% | 75.5 MiB/s | 1.0 MiB | 00m00s [501/750] Installing texlive-lualatex-m 100% | 32.7 MiB/s | 234.7 KiB | 00m00s [502/750] Installing texlive-eso-pic-12 100% | 18.0 MiB/s | 332.1 KiB | 00m00s [503/750] Installing texlive-fmtcount-1 100% | 37.7 MiB/s | 888.1 KiB | 00m00s [504/750] Installing texlive-fonts-tlwg 100% | 46.9 MiB/s | 8.5 MiB | 00m00s [505/750] Installing texlive-grffile-12 100% | 12.0 MiB/s | 380.7 KiB | 00m00s [506/750] Installing texlive-tex-gyre-1 100% | 68.6 MiB/s | 37.8 MiB | 00m01s [507/750] Installing texlive-koma-scrip 100% | 55.9 MiB/s | 14.9 MiB | 00m00s [508/750] Installing texlive-carlisle-1 100% | 16.6 MiB/s | 119.1 KiB | 00m00s [509/750] Installing texlive-ifplatform 100% | 33.7 MiB/s | 172.3 KiB | 00m00s [510/750] Installing texlive-siunitx-12 100% | 75.4 MiB/s | 1.5 MiB | 00m00s [511/750] Installing texlive-pst-calcul 100% | 11.0 MiB/s | 67.4 KiB | 00m00s [512/750] Installing texlive-sttools-12 100% | 59.4 MiB/s | 791.0 KiB | 00m00s [513/750] Installing texlive-newfloat-1 100% | 28.9 MiB/s | 236.7 KiB | 00m00s [514/750] Installing texlive-caption-12 100% | 43.5 MiB/s | 1.9 MiB | 00m00s [515/750] Installing texlive-pdflscape- 100% | 41.9 MiB/s | 343.3 KiB | 00m00s [516/750] Installing texlive-translator 100% | 10.9 MiB/s | 525.1 KiB | 00m00s [517/750] Installing texlive-pdfcol-12: 100% | 48.4 MiB/s | 346.8 KiB | 00m00s [518/750] Installing texlive-sauerj-12: 100% | 28.4 MiB/s | 1.0 MiB | 00m00s [519/750] Installing texlive-japanese-o 100% | 70.8 MiB/s | 42.6 MiB | 00m01s [520/750] Installing texlive-bookmark-1 100% | 38.8 MiB/s | 556.3 KiB | 00m00s [521/750] Installing texlive-cqubeamer- 100% | 80.9 MiB/s | 3.1 MiB | 00m00s [522/750] Installing texlive-pdfcolfoot 100% | 41.1 MiB/s | 337.1 KiB | 00m00s [523/750] Installing texlive-subfig-12: 100% | 46.1 MiB/s | 754.5 KiB | 00m00s [524/750] Installing texlive-sansmathac 100% | 12.9 MiB/s | 224.4 KiB | 00m00s [525/750] Installing texlive-beamer-12: 100% | 41.0 MiB/s | 4.9 MiB | 00m00s [526/750] Installing texlive-garuda-c90 100% | 6.9 MiB/s | 35.6 KiB | 00m00s [527/750] Installing texlive-norasi-c90 100% | 7.6 MiB/s | 46.5 KiB | 00m00s [528/750] Installing texlive-datetime-1 100% | 30.8 MiB/s | 819.3 KiB | 00m00s [529/750] Installing texlive-bidipagegr 100% | 11.8 MiB/s | 60.2 KiB | 00m00s [530/750] Installing texlive-tkz-tab-12 100% | 53.3 MiB/s | 545.6 KiB | 00m00s [531/750] Installing texlive-na-positio 100% | 23.1 MiB/s | 118.1 KiB | 00m00s [532/750] Installing texlive-tikz-cd-12 100% | 43.8 MiB/s | 358.8 KiB | 00m00s [533/750] Installing texlive-ctable-12: 100% | 72.9 MiB/s | 821.1 KiB | 00m00s [534/750] Installing texlive-microtype- 100% | 48.0 MiB/s | 3.1 MiB | 00m00s [535/750] Installing texlive-xespotcolo 100% | 5.1 MiB/s | 182.7 KiB | 00m00s [536/750] Installing texlive-passivetex 100% | 36.2 MiB/s | 296.8 KiB | 00m00s [537/750] Installing texlive-ltxmisc-12 100% | 6.3 MiB/s | 83.7 KiB | 00m00s [538/750] Installing texlive-attachfile 100% | 5.5 MiB/s | 522.1 KiB | 00m00s [539/750] Installing texlive-parskip-12 100% | 31.9 MiB/s | 424.3 KiB | 00m00s [540/750] Installing texlive-breqn-12:s 100% | 83.5 MiB/s | 1.3 MiB | 00m00s [541/750] Installing texlive-fancyref-1 100% | 24.3 MiB/s | 174.0 KiB | 00m00s [542/750] Installing texlive-latex-lab- 100% | 101.7 MiB/s | 16.5 MiB | 00m00s [543/750] Installing texlive-ltabptch-1 100% | 43.9 MiB/s | 314.4 KiB | 00m00s [544/750] Installing texlive-lineno-12: 100% | 65.9 MiB/s | 1.3 MiB | 00m00s [545/750] Installing texlive-t2-12:svn4 100% | 16.3 MiB/s | 466.6 KiB | 00m00s [546/750] Installing texlive-collcell-1 100% | 36.4 MiB/s | 223.6 KiB | 00m00s [547/750] Installing texlive-crop-12:sv 100% | 50.0 MiB/s | 358.3 KiB | 00m00s [548/750] Installing texlive-psfrag-12: 100% | 15.5 MiB/s | 126.9 KiB | 00m00s [549/750] Installing texlive-xfrac-12:s 100% | 73.7 MiB/s | 679.5 KiB | 00m00s [550/750] Installing texlive-algorithms 100% | 47.8 MiB/s | 391.9 KiB | 00m00s [551/750] Installing texlive-titlesec-1 100% | 70.2 MiB/s | 862.8 KiB | 00m00s [552/750] Installing texlive-bidicontou 100% | 12.4 MiB/s | 63.6 KiB | 00m00s [553/750] Installing texlive-bidishadow 100% | 27.9 MiB/s | 142.7 KiB | 00m00s [554/750] Installing texlive-logreq-12: 100% | 7.9 MiB/s | 56.8 KiB | 00m00s [555/750] Installing texlive-pdfmanagem 100% | 104.1 MiB/s | 6.6 MiB | 00m00s [556/750] Installing texlive-typehtml-1 100% | 36.7 MiB/s | 225.4 KiB | 00m00s [557/750] Installing texlive-underscore 100% | 40.3 MiB/s | 288.7 KiB | 00m00s [558/750] Installing texlive-ae-12:svn1 100% | 15.9 MiB/s | 505.1 KiB | 00m00s [559/750] Installing texlive-mnsymbol-1 100% | 47.6 MiB/s | 6.0 MiB | 00m00s [560/750] Installing texlive-bibtopic-1 100% | 42.5 MiB/s | 304.5 KiB | 00m00s [561/750] Installing texlive-bidi-atbeg 100% | 10.7 MiB/s | 220.0 KiB | 00m00s [562/750] Installing texlive-xeindex-12 100% | 16.0 MiB/s | 115.0 KiB | 00m00s [563/750] Installing texlive-tocvsec2-1 100% | 45.1 MiB/s | 323.6 KiB | 00m00s [564/750] Installing texlive-makerobust 100% | 14.0 MiB/s | 86.0 KiB | 00m00s [565/750] Installing texlive-zref-12:sv 100% | 56.1 MiB/s | 804.9 KiB | 00m00s [566/750] Installing texlive-luatex85-1 100% | 23.5 MiB/s | 192.6 KiB | 00m00s [567/750] Installing texlive-ctablestac 100% | 27.5 MiB/s | 169.3 KiB | 00m00s [568/750] Installing texlive-luatexbase 100% | 31.6 MiB/s | 291.3 KiB | 00m00s [569/750] Installing texlive-luaotfload 100% | 39.3 MiB/s | 8.3 MiB | 00m00s [570/750] Installing texlive-fontspec-1 100% | 51.7 MiB/s | 1.6 MiB | 00m00s [571/750] Installing texlive-babel-12:s 100% | 7.6 MiB/s | 3.9 MiB | 00m01s [572/750] Installing texlive-unicode-ma 100% | 109.6 MiB/s | 3.8 MiB | 00m00s [573/750] Installing texlive-metalogo-1 100% | 17.0 MiB/s | 122.0 KiB | 00m00s [574/750] Installing texlive-oberdiek-1 100% | 106.0 MiB/s | 11.2 MiB | 00m00s [575/750] Installing texlive-pdfpages-1 100% | 32.0 MiB/s | 327.8 KiB | 00m00s [576/750] Installing texlive-babelbib-1 100% | 78.8 MiB/s | 2.4 MiB | 00m00s [577/750] Installing texlive-xmltex-12: 100% | 1.4 MiB/s | 161.4 KiB | 00m00s [578/750] Installing texlive-mathspec-1 100% | 35.8 MiB/s | 256.8 KiB | 00m00s [579/750] Installing texlive-realscript 100% | 25.5 MiB/s | 130.5 KiB | 00m00s [580/750] Installing texlive-xltxtra-12 100% | 24.8 MiB/s | 126.7 KiB | 00m00s [581/750] Installing texlive-fontbook-1 100% | 81.3 MiB/s | 1.5 MiB | 00m00s [582/750] Installing texlive-xecolor-12 100% | 5.3 MiB/s | 27.1 KiB | 00m00s [583/750] Installing texlive-luacode-12 100% | 52.3 MiB/s | 428.3 KiB | 00m00s [584/750] Installing texlive-luatextra- 100% | 38.3 MiB/s | 314.0 KiB | 00m00s [585/750] Installing texlive-xecyr-12:s 100% | 35.0 MiB/s | 824.7 KiB | 00m00s [586/750] Installing texlive-varwidth-1 100% | 12.8 MiB/s | 65.6 KiB | 00m00s [587/750] Installing texlive-ifmtarg-12 100% | 11.2 MiB/s | 57.3 KiB | 00m00s [588/750] Installing texlive-xifthen-12 100% | 62.1 MiB/s | 509.1 KiB | 00m00s [589/750] Installing texlive-trimspaces 100% | 26.8 MiB/s | 192.3 KiB | 00m00s [590/750] Installing texlive-environ-12 100% | 34.6 MiB/s | 177.0 KiB | 00m00s [591/750] Installing texlive-pst-pdf-12 100% | 12.1 MiB/s | 1.3 MiB | 00m00s [592/750] Installing texlive-pstricks-1 100% | 60.4 MiB/s | 13.8 MiB | 00m00s [593/750] Installing texlive-pst-3d-12: 100% | 12.7 MiB/s | 194.8 KiB | 00m00s [594/750] Installing texlive-pst-node-1 100% | 32.6 MiB/s | 1.0 MiB | 00m00s [595/750] Installing texlive-pst-plot-1 100% | 34.1 MiB/s | 2.4 MiB | 00m00s [596/750] Installing texlive-pst-coil-1 100% | 52.7 MiB/s | 3.6 MiB | 00m00s [597/750] Installing texlive-pst-eps-12 100% | 18.8 MiB/s | 153.8 KiB | 00m00s [598/750] Installing texlive-pst-fill-1 100% | 45.4 MiB/s | 1.0 MiB | 00m00s [599/750] Installing texlive-pst-grad-1 100% | 18.4 MiB/s | 300.8 KiB | 00m00s [600/750] Installing texlive-pst-text-1 100% | 22.7 MiB/s | 256.2 KiB | 00m00s [601/750] Installing texlive-pst-tree-1 100% | 27.5 MiB/s | 281.8 KiB | 00m00s [602/750] Installing texlive-pst-math-1 100% | 15.0 MiB/s | 307.4 KiB | 00m00s [603/750] Installing texlive-pstricks-a 100% | 47.2 MiB/s | 18.0 MiB | 00m00s [604/750] Installing texlive-fancyvrb-1 100% | 19.0 MiB/s | 291.7 KiB | 00m00s [605/750] Installing texlive-listings-1 100% | 65.1 MiB/s | 4.4 MiB | 00m00s [606/750] Installing texlive-pst-ovl-12 100% | 6.3 MiB/s | 70.9 KiB | 00m00s [607/750] Installing texlive-seminar-12 100% | 18.7 MiB/s | 786.6 KiB | 00m00s [608/750] Installing texlive-appendix-1 100% | 33.2 MiB/s | 339.9 KiB | 00m00s [609/750] Installing texlive-changebar- 100% | 37.3 MiB/s | 839.8 KiB | 00m00s [610/750] Installing texlive-multirow-1 100% | 53.2 MiB/s | 654.2 KiB | 00m00s [611/750] Installing texlive-subfigure- 100% | 16.7 MiB/s | 445.5 KiB | 00m00s [612/750] Installing texlive-avantgar-1 100% | 14.3 MiB/s | 1.0 MiB | 00m00s [613/750] Installing texlive-bookman-12 100% | 7.9 MiB/s | 982.9 KiB | 00m00s [614/750] Installing texlive-charter-12 100% | 16.3 MiB/s | 417.3 KiB | 00m00s [615/750] Installing texlive-cmextra-12 100% | 4.9 MiB/s | 141.6 KiB | 00m00s [616/750] Installing texlive-courier-12 100% | 11.3 MiB/s | 822.0 KiB | 00m00s [617/750] Installing texlive-euro-ce-12 100% | 2.9 MiB/s | 47.1 KiB | 00m00s [618/750] Installing texlive-eurosym-12 100% | 16.7 MiB/s | 531.0 KiB | 00m00s [619/750] Installing texlive-helvetic-1 100% | 11.8 MiB/s | 1.8 MiB | 00m00s [620/750] Installing texlive-manfnt-fon 100% | 3.3 MiB/s | 44.2 KiB | 00m00s [621/750] Installing texlive-mflogo-fon 100% | 1.9 MiB/s | 43.6 KiB | 00m00s [622/750] Installing texlive-ncntrsbk-1 100% | 14.5 MiB/s | 963.6 KiB | 00m00s [623/750] Installing texlive-pxfonts-12 100% | 12.1 MiB/s | 1.4 MiB | 00m00s [624/750] Installing texlive-rsfs-12:sv 100% | 5.2 MiB/s | 107.4 KiB | 00m00s [625/750] Installing texlive-tex-gyre-m 100% | 32.7 MiB/s | 3.2 MiB | 00m00s [626/750] Installing texlive-times-12:s 100% | 8.7 MiB/s | 1.0 MiB | 00m00s [627/750] Installing texlive-txfonts-12 100% | 19.0 MiB/s | 2.4 MiB | 00m00s [628/750] Installing texlive-utopia-12: 100% | 13.0 MiB/s | 557.8 KiB | 00m00s [629/750] Installing texlive-zapfchan-1 100% | 7.7 MiB/s | 190.3 KiB | 00m00s [630/750] Installing texlive-bidipresen 100% | 31.7 MiB/s | 292.0 KiB | 00m00s [631/750] Installing texlive-businessca 100% | 29.3 MiB/s | 631.1 KiB | 00m00s [632/750] Installing texlive-ctex-faq-1 100% | 37.6 MiB/s | 731.5 KiB | 00m00s [633/750] Installing texlive-font-chang 100% | 35.6 MiB/s | 693.2 KiB | 00m00s [634/750] Installing texlive-simple-res 100% | 9.0 MiB/s | 119.7 KiB | 00m00s [635/750] Installing texlive-simple-the 100% | 26.5 MiB/s | 271.4 KiB | 00m00s [636/750] Installing texlive-tetragonos 100% | 34.0 MiB/s | 1.6 MiB | 00m00s [637/750] Installing texlive-unicode-bi 100% | 4.5 MiB/s | 23.1 KiB | 00m00s [638/750] Installing texlive-unimath-pl 100% | 16.4 MiB/s | 1.2 MiB | 00m00s [639/750] Installing texlive-xebaposter 100% | 25.6 MiB/s | 1.0 MiB | 00m00s [640/750] Installing texlive-xechangeba 100% | 13.0 MiB/s | 66.4 KiB | 00m00s [641/750] Installing texlive-xetex-deva 100% | 59.7 MiB/s | 1.1 MiB | 00m00s [642/750] Installing texlive-xetex-itra 100% | 10.5 MiB/s | 1.2 MiB | 00m00s [643/750] Installing texlive-xetex-pstr 100% | 698.4 KiB/s | 3.5 KiB | 00m00s [644/750] Installing texlive-xetex-tibe 100% | 59.8 MiB/s | 1.1 MiB | 00m00s [645/750] Installing texlive-xetexfonti 100% | 6.2 MiB/s | 19.0 KiB | 00m00s [646/750] Installing texlive-xetexref-1 100% | 17.4 MiB/s | 231.2 KiB | 00m00s [647/750] Installing texlive-xevlna-12: 100% | 23.6 MiB/s | 96.5 KiB | 00m00s [648/750] Installing texlive-eepic-12:s 100% | 13.8 MiB/s | 198.1 KiB | 00m00s [649/750] Installing texlive-overpic-12 100% | 68.7 MiB/s | 422.3 KiB | 00m00s [650/750] Installing texlive-cjkpunct-1 100% | 12.6 MiB/s | 193.7 KiB | 00m00s [651/750] Installing texlive-fandol-12: 100% | 29.5 MiB/s | 33.3 MiB | 00m01s [652/750] Installing texlive-ttfutils-1 100% | 7.5 MiB/s | 1.4 MiB | 00m00s [653/750] Installing texlive-xcjk2uni-1 100% | 15.9 MiB/s | 2.2 MiB | 00m00s [654/750] Installing texlive-xpinyin-12 100% | 13.1 MiB/s | 1.4 MiB | 00m00s [655/750] Installing texlive-zhmetrics- 100% | 3.3 MiB/s | 6.4 MiB | 00m02s [656/750] Installing texlive-zhmetrics- 100% | 77.3 MiB/s | 7.5 MiB | 00m00s [657/750] Installing texlive-zhnumber-1 100% | 15.6 MiB/s | 368.4 KiB | 00m00s [658/750] Installing texlive-was-12:svn 100% | 29.8 MiB/s | 366.0 KiB | 00m00s [659/750] Installing texlive-perltex-12 100% | 3.2 MiB/s | 468.0 KiB | 00m00s [660/750] Installing texlive-fontwrap-1 100% | 16.5 MiB/s | 388.6 KiB | 00m00s [661/750] Installing texlive-lastpage-1 100% | 62.1 MiB/s | 635.9 KiB | 00m00s [662/750] Installing texlive-undolabl-1 100% | 47.8 MiB/s | 391.5 KiB | 00m00s [663/750] Installing texlive-xits-12:sv 100% | 39.1 MiB/s | 1.4 MiB | 00m00s [664/750] Installing texlive-gensymb-12 100% | 19.5 MiB/s | 259.1 KiB | 00m00s [665/750] Installing texlive-zbmath-rev 100% | 7.3 MiB/s | 285.9 KiB | 00m00s [666/750] Installing texlive-arphic-12: 100% | 30.9 MiB/s | 31.1 MiB | 00m01s [667/750] Installing texlive-cns-12:svn 100% | 20.1 MiB/s | 9.7 MiB | 00m00s [668/750] Installing texlive-uhc-12:svn 100% | 6.8 MiB/s | 7.9 MiB | 00m01s [669/750] Installing texlive-wadalab-12 100% | 29.9 MiB/s | 21.3 MiB | 00m01s [670/750] Installing texlive-cjk-12:svn 100% | 17.4 MiB/s | 2.9 MiB | 00m00s [671/750] Installing texlive-ascmac-12: 100% | 9.6 MiB/s | 206.9 KiB | 00m00s [672/750] Installing texlive-luatexja-1 100% | 35.8 MiB/s | 5.6 MiB | 00m00s [673/750] Installing texlive-convbkmk-1 100% | 125.7 KiB/s | 17.4 KiB | 00m00s [674/750] Installing texlive-uptex-base 100% | 10.8 MiB/s | 685.3 KiB | 00m00s [675/750] Installing texlive-uptex-font 100% | 57.1 MiB/s | 15.7 MiB | 00m00s [676/750] Installing texlive-minifp-12: 100% | 31.5 MiB/s | 516.3 KiB | 00m00s [677/750] Installing texlive-lettrine-1 100% | 31.5 MiB/s | 646.1 KiB | 00m00s [678/750] Installing texlive-philokalia 100% | 23.6 MiB/s | 241.9 KiB | 00m00s [679/750] Installing texlive-latex-firs 100% | 23.6 MiB/s | 338.1 KiB | 00m00s [680/750] Installing texlive-fnpara-12: 100% | 19.9 MiB/s | 204.2 KiB | 00m00s [681/750] Installing texlive-sectsty-12 100% | 29.2 MiB/s | 268.7 KiB | 00m00s [682/750] Installing texlive-kotex-utf- 100% | 62.3 MiB/s | 11.1 MiB | 00m00s [683/750] Installing texlive-cjk-ko-12: 100% | 19.6 MiB/s | 260.3 KiB | 00m00s [684/750] Installing texlive-xetexko-12 100% | 26.2 MiB/s | 591.1 KiB | 00m00s [685/750] Installing texlive-luatexko-1 100% | 55.5 MiB/s | 511.7 KiB | 00m00s [686/750] Installing texlive-arydshln-1 100% | 28.1 MiB/s | 948.8 KiB | 00m00s [687/750] Installing perl-LWP-Protocol- 100% | 5.2 MiB/s | 32.2 KiB | 00m00s [688/750] Installing perl-LDAP-1:0.68-1 100% | 12.7 MiB/s | 962.3 KiB | 00m00s [689/750] Installing perl-Log-Log4perl- 100% | 4.8 MiB/s | 837.3 KiB | 00m00s [690/750] Installing perl-XML-SAX-0:1.0 100% | 611.6 KiB/s | 126.0 KiB | 00m00s [691/750] Installing perl-XML-LibXML-1: 100% | 3.0 MiB/s | 1.1 MiB | 00m00s [692/750] Installing perl-XML-LibXML-Si 100% | 3.9 MiB/s | 52.3 KiB | 00m00s [693/750] Installing perl-XML-LibXSLT-0 100% | 7.5 MiB/s | 154.1 KiB | 00m00s [694/750] Installing biber-0:2.22-2.fc4 100% | 7.5 MiB/s | 1.4 MiB | 00m00s [695/750] Installing texlive-biblatex-1 100% | 58.6 MiB/s | 21.8 MiB | 00m00s [696/750] Installing texlive-biblatex-g 100% | 43.7 MiB/s | 4.0 MiB | 00m00s [697/750] Installing libX11-common-0:1. 100% | 12.6 MiB/s | 1.2 MiB | 00m00s [698/750] Installing libX11-0:1.8.13-2. 100% | 53.1 MiB/s | 1.6 MiB | 00m00s [699/750] Installing libXt-0:1.3.1-5.fc 100% | 27.9 MiB/s | 542.6 KiB | 00m00s [700/750] Installing libXext-0:1.3.6-6. 100% | 14.3 MiB/s | 146.9 KiB | 00m00s [701/750] Installing libXmu-0:1.2.1-6.f 100% | 32.1 MiB/s | 328.6 KiB | 00m00s [702/750] Installing libXpm-0:3.5.19-4. 100% | 14.9 MiB/s | 214.2 KiB | 00m00s [703/750] Installing libXaw-0:1.0.16-6. 100% | 30.1 MiB/s | 616.3 KiB | 00m00s [704/750] Installing libXi-0:1.8.3-2.fc 100% | 22.4 MiB/s | 137.4 KiB | 00m00s [705/750] Installing texlive-xdvi-12:sv 100% | 5.2 MiB/s | 892.3 KiB | 00m00s [706/750] Installing libgs-0:10.07.1-2. 100% | 50.1 MiB/s | 26.6 MiB | 00m01s [707/750] Installing ghostscript-0:10.0 100% | 613.7 KiB/s | 90.8 KiB | 00m00s [708/750] Installing ghostscript-tools- 100% | 24.6 KiB/s | 3.4 KiB | 00m00s [709/750] Installing ghostscript-tools- 100% | 35.2 KiB/s | 5.1 KiB | 00m00s [710/750] Installing texlive-thumbpdf-1 100% | 1.4 MiB/s | 98.9 KiB | 00m00s [711/750] Installing ghostscript-tools- 100% | 30.9 KiB/s | 1.8 KiB | 00m00s [712/750] Installing latexmk-0:4.88-2.f 100% | 14.2 MiB/s | 1.0 MiB | 00m00s [713/750] Installing texlive-metafont-1 100% | 14.8 MiB/s | 1.0 MiB | 00m00s [714/750] Installing libXrender-0:0.9.1 100% | 23.1 MiB/s | 71.0 KiB | 00m00s [715/750] Installing cairo-0:1.18.4-9.f 100% | 95.3 MiB/s | 2.1 MiB | 00m00s [716/750] Installing texlive-uptex-12:s 100% | 35.1 MiB/s | 3.1 MiB | 00m00s [717/750] Installing texlive-ptex-12:sv 100% | 17.7 MiB/s | 1.3 MiB | 00m00s [718/750] Installing texlive-plautopatc 100% | 36.0 MiB/s | 184.3 KiB | 00m00s [719/750] Installing texlive-platex-12: 100% | 93.4 MiB/s | 2.5 MiB | 00m00s [720/750] Installing texlive-platex-too 100% | 45.8 MiB/s | 655.9 KiB | 00m00s [721/750] Installing libicu-0:78.3-8.fc 100% | 115.2 MiB/s | 39.2 MiB | 00m00s [722/750] Installing texlive-xetex-12:s 100% | 30.9 MiB/s | 2.7 MiB | 00m00s [723/750] Installing texlive-dvipdfmx-1 100% | 43.4 MiB/s | 3.8 MiB | 00m00s [724/750] Installing texlive-collection 100% | 60.5 KiB/s | 124.0 B | 00m00s [725/750] Installing texlive-ctex-12:sv 100% | 84.8 MiB/s | 2.7 MiB | 00m00s [726/750] Installing texlive-xecjk-12:s 100% | 75.4 MiB/s | 3.1 MiB | 00m00s [727/750] Installing texlive-collection 100% | 121.1 KiB/s | 124.0 B | 00m00s [728/750] Installing texlive-shtthesis- 100% | 138.5 MiB/s | 2.2 MiB | 00m00s [729/750] Installing texlive-collection 100% | 30.3 KiB/s | 124.0 B | 00m00s [730/750] Installing dblatex-0:0.3.12-3 100% | 9.4 MiB/s | 5.3 MiB | 00m01s [731/750] Installing texlive-showexpl-1 100% | 78.9 MiB/s | 646.4 KiB | 00m00s [732/750] Installing texlive-bidi-12:sv 100% | 92.9 MiB/s | 5.4 MiB | 00m00s [733/750] Installing texlive-polyglossi 100% | 33.5 MiB/s | 1.4 MiB | 00m00s [734/750] Installing texlive-fixlatvian 100% | 38.2 MiB/s | 195.4 KiB | 00m00s [735/750] Installing texlive-arabxetex- 100% | 135.4 MiB/s | 1.5 MiB | 00m00s [736/750] Installing texlive-ptext-12:s 100% | 40.5 MiB/s | 165.9 KiB | 00m00s [737/750] Installing texlive-collection 100% | 121.1 KiB/s | 124.0 B | 00m00s [738/750] Installing texlive-collection 100% | 60.5 KiB/s | 124.0 B | 00m00s [739/750] Installing libverto-devel-0:0 100% | 12.9 MiB/s | 26.4 KiB | 00m00s [740/750] Installing libkadm5-0:1.22.2- 100% | 46.3 MiB/s | 331.6 KiB | 00m00s [741/750] Installing krb5-devel-0:1.22. 100% | 10.0 MiB/s | 719.2 KiB | 00m00s [742/750] Installing ncurses-c++-libs-0 100% | 32.5 MiB/s | 266.5 KiB | 00m00s [743/750] Installing ncurses-devel-0:6. 100% | 8.4 MiB/s | 1.0 MiB | 00m00s [744/750] Installing cmake-filesystem-0 100% | 1.1 MiB/s | 9.4 KiB | 00m00s [745/750] Installing libssh-devel-0:0.1 100% | 40.4 MiB/s | 206.9 KiB | 00m00s [746/750] Installing readline-devel-0:8 100% | 49.1 MiB/s | 603.5 KiB | 00m00s [747/750] Installing linuxdoc-tools-0:0 100% | 1.4 MiB/s | 650.2 KiB | 00m00s [748/750] Installing bison-0:3.8.2-16.f 100% | 37.4 MiB/s | 3.7 MiB | 00m00s [749/750] Installing flex-0:2.6.4-25.fc 100% | 10.2 MiB/s | 919.2 KiB | 00m00s [750/750] Installing systemd-rpm-macros 100% | 32.0 B/s | 8.9 KiB | 04m41s Warning: skipped OpenPGP checks for 29 packages from repository: copr_base Complete! Building target platforms: ppc64le Building for target ppc64le warning: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit setting SOURCE_DATE_EPOCH=1785456000 Wrote: /builddir/build/SRPMS/bird-3.3.2-1.fc46.src.rpm RPM build warnings: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit Updating and loading repositories: fedora 100% | 14.5 KiB/s | 5.8 KiB | 00m00s Additional repo copr_tstellar_fedora_c 100% | 6.1 KiB/s | 1.5 KiB | 00m00s Additional repo copr_fedora_llvm_team_ 100% | 5.4 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 6.1 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "bison-3.8.2-16.fc45.ppc64le" is already installed. Package "flex-2.6.4-25.fc45.ppc64le" is already installed. Package "gcc-16.2.1-2.fc46.ppc64le" is already installed. Package "libssh-devel-0.12.2-1.fc45.ppc64le" is already installed. Package "linuxdoc-tools-0.9.85-4.fc45.ppc64le" is already installed. Package "make-1:4.4.1-13.fc45.ppc64le" is already installed. Package "ncurses-devel-6.6-3.fc45.ppc64le" is already installed. Package "perl-FindBin-1.54-527.fc45.noarch" is already installed. Package "readline-devel-8.3-6.fc45.ppc64le" is already installed. Package "sed-4.10-2.fc45.ppc64le" is already installed. Package "sgml-common-0.6.3-69.fc45.noarch" is already installed. Package "systemd-rpm-macros-261.2-1.fc45.noarch" is already installed. Package "texlive-enumitem-12:svn77682-7.fc45.noarch" is already installed. Nothing to do. Finish: build setup for bird-3.3.2-1.fc46.src.rpm Start: rpmbuild bird-3.3.2-1.fc46.src.rpm Building target platforms: ppc64le Building for target ppc64le warning: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit setting SOURCE_DATE_EPOCH=1785456000 Executing(mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.mqeSW3 Creating(rpmbuild.env): /builddir/build/BUILD/bird-3.3.2-build/rpmbuild.env RPM_SOURCE_DIR="/builddir/build/SOURCES" RPM_BUILD_DIR="/builddir/build/BUILD/bird-3.3.2-build" RPM_OPT_FLAGS="-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection" RPM_LD_FLAGS="-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 " RPM_ARCH="ppc64le" RPM_OS="linux" RPM_BUILD_NCPUS="5" RPM_SPECPARTS_DIR="/builddir/build/BUILD/bird-3.3.2-build/SPECPARTS" export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_SPECPARTS_DIR RPM_LD_FLAGS RPM_DOC_DIR="/usr/share/doc" export RPM_DOC_DIR RPM_PACKAGE_NAME="bird" RPM_PACKAGE_VERSION="3.3.2" RPM_PACKAGE_RELEASE="1.fc46" export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE LANG=C.UTF-8 export LANG unset CDPATH DISPLAY ||: unset DEBUGINFOD_URLS ||: unset RPM_CONFIG_DIR ||: RPM_BUILD_ROOT="/builddir/build/BUILD/bird-3.3.2-build/BUILDROOT" export RPM_BUILD_ROOT PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig" export PKG_CONFIG_PATH CONFIG_SITE=${CONFIG_SITE:-NONE} export CONFIG_SITE Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.DFqJgG + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + cd /builddir/build/BUILD/bird-3.3.2-build + rm -rf bird-3.3.2 + /usr/bin/rpmuncompress -x /builddir/build/SOURCES/bird-3.3.2.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd bird-3.3.2 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ZIH7zP + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + CFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CFLAGS + CXXFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CXXFLAGS + FFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=clang + export CC + CXX=clang++ + export CXX + cd bird-3.3.2 + CFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CFLAGS + CXXFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CXXFLAGS + FFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=clang + export CC + CXX=clang++ + export CXX + '[' '-flto=thin -ffat-lto-objectsx' '!=' x ']' ++ find . -type f -name configure -print + for file in $(find . -type f -name configure -print) + /usr/bin/sed -r --in-place=.backup 's/^char \(\*f\) \(\) = /__attribute__ ((used)) char (*f) () = /g' ./configure + diff -u ./configure.backup ./configure + mv ./configure.backup ./configure + /usr/bin/sed -r --in-place=.backup 's/^char \(\*f\) \(\);/__attribute__ ((used)) char (*f) ();/g' ./configure + diff -u ./configure.backup ./configure + mv ./configure.backup ./configure + /usr/bin/sed -r --in-place=.backup 's/^char \$2 \(\);/__attribute__ ((used)) char \$2 ();/g' ./configure + diff -u ./configure.backup ./configure + mv ./configure.backup ./configure + /usr/bin/sed --in-place=.backup '1{$!N;$!N};$!N;s/int x = 1;\nint y = 0;\nint z;\nint nan;/volatile int x = 1; volatile int y = 0; volatile int z, nan;/;P;D' ./configure + diff -u ./configure.backup ./configure + mv ./configure.backup ./configure + /usr/bin/sed -r --in-place=.backup '/lt_cv_sys_global_symbol_to_cdecl=/s#(".*"|'\''.*'\'')#"sed -n -e '\''s/^T .* \\(.*\\)$/extern int \\1();/p'\'' -e '\''s/^$symcode* .* \\(.*\\)$/extern char \\1;/p'\''"#' ./configure + diff -u ./configure.backup ./configure + mv ./configure.backup ./configure + '[' 1 = 1 ']' +++ dirname ./configure ++ find . -name config.guess -o -name config.sub + for i in $(find $(dirname ./configure) -name config.guess -o -name config.sub) ++ basename ./tools/config.sub + '[' -f /usr/lib/rpm/redhat/config.sub ']' + /usr/bin/rm -f ./tools/config.sub ++ basename ./tools/config.sub + /usr/bin/cp -fv /usr/lib/rpm/redhat/config.sub ./tools/config.sub '/usr/lib/rpm/redhat/config.sub' -> './tools/config.sub' + for i in $(find $(dirname ./configure) -name config.guess -o -name config.sub) ++ basename ./tools/config.guess + '[' -f /usr/lib/rpm/redhat/config.guess ']' + /usr/bin/rm -f ./tools/config.guess ++ basename ./tools/config.guess + /usr/bin/cp -fv /usr/lib/rpm/redhat/config.guess ./tools/config.guess '/usr/lib/rpm/redhat/config.guess' -> './tools/config.guess' + '[' 1 = 1 ']' + '[' x '!=' 'x-Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg' ']' ++ find . -name ltmain.sh ++ grep -q runstatedir=DIR ./configure ++ echo --runstatedir=/run + ./configure --build=ppc64le-redhat-linux --host=ppc64le-redhat-linux --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/bin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --runstatedir=/run/bird configure: WARNING: unrecognized options: --disable-dependency-tracking checking for ppc64le-redhat-linux-gcc... clang 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 clang accepts -g... yes checking for clang option to enable C11 features... none needed checking for library containing clock_gettime... none required checking build system type... powerpc64le-redhat-linux-gnu checking host system type... powerpc64le-redhat-linux-gnu checking for ppc64le-redhat-linux-gcc... (cached) clang checking whether the compiler supports GNU C... (cached) yes checking whether clang accepts -g... (cached) yes checking for clang option to enable C11 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 how atomics are implemented... native checking CFLAGS... -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow checking LDFLAGS... -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread checking how to run the C preprocessor... clang -E checking for a BSD-compatible install... /usr/bin/install -c checking for ppc64le-redhat-linux-ranlib... no checking for ranlib... ranlib checking for flex... flex checking for bison... bison checking for gm4... no checking for m4... m4 checking for pandoc... no checking bison version... 3.8.2 checking which OS configuration should we use... ./sysdep/cf/linux.h checking system-dependent directories... sysdep/linux sysdep/unix 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... yes checking for CLOCK_MONOTONIC... yes checking for CLOCK_MONOTONIC_COARSE... yes checking protocols... ok checking for linux/rtnetlink.h... yes checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for alloca.h... yes checking for syslog.h... yes checking for stdatomic.h... yes checking for sys/mman.h... yes checking for aligned_alloc... yes checking for mallopt... yes checking for struct sockaddr.sa_len... no 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 configure: WARNING: unrecognized options: --disable-dependency-tracking BIRD was configured with the following options: Source directory: . Object directory: obj Iproute2 directory: /etc/iproute2 System configuration: ./sysdep/cf/linux.h Debugging: no Link-time optimization: auto Compact tries: no Routing protocols: aggregator bfd babel bgp bmp bridge evpn l3vpn mrt ospf pipe radv rip rpki static LibSSH support in RPKI: yes Kernel MPLS support: yes Client: yes + /usr/bin/make -O -j5 V=1 VERBOSE=1 all docs mkdir -p obj/client obj/conf obj/doc obj/filter obj/lib obj/nest obj/test obj/gitlab obj/proto/aggregator obj/proto/bfd obj/proto/babel obj/proto/bgp obj/proto/bmp obj/proto/bridge obj/proto/evpn obj/proto/l3vpn obj/proto/mrt obj/proto/ospf obj/proto/pipe obj/proto/radv obj/proto/rip obj/proto/rpki obj/proto/static obj/sysdep/linux obj/sysdep/unix obj/doc touch obj/.dir-stamp echo >obj/sysdep/paths.h "/* Generated by Makefile, don't edit manually! */" echo >>obj/sysdep/paths.h "#define PATH_CONFIG_FILE \"/etc/bird.conf\"" echo >>obj/sysdep/paths.h "#define PATH_CONTROL_SOCKET \"/run/bird/bird.ctl\"" if test -n "/etc/iproute2" ; then echo >>obj/sysdep/paths.h "#define PATH_IPROUTE_DIR \"/etc/iproute2\"" ; fi m4 -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/aggregator/config.Y proto/bfd/config.Y proto/babel/config.Y proto/bgp/config.Y proto/bmp/config.Y proto/bridge/config.Y proto/evpn/config.Y proto/l3vpn/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/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/commands.h ( P='aggregator bfd babel bgp bmp bridge evpn l3vpn mrt ospf pipe radv rip rpki static dev kif krt' && printf "void %s_build(void);\n" $P && printf "\nvoid\nprotos_build_gen(void)\n{\n" && printf " %s_build();\n" $P && printf "}\n" ) > obj/nest/proto-build.c m4 -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/aggregator/config.Y proto/bfd/config.Y proto/babel/config.Y proto/bgp/config.Y proto/bmp/config.Y proto/bridge/config.Y proto/evpn/config.Y proto/l3vpn/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/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/keywords.h m4 -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/aggregator/config.Y proto/bfd/config.Y proto/babel/config.Y proto/bgp/config.Y proto/bmp/config.Y proto/bridge/config.Y proto/evpn/config.Y proto/l3vpn/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/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/cf-parse.y m4 -s -DTARGET=I -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-interpret.c sed 's#{{ VERSION }}#3.3.2#' obj/doc/bird.sgml m4 -s -DTARGET=H -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.h flex -f -s -B -8 -Pcf_ -oobj/conf/cf-lex.c conf/cf-lex.l m4 -s -DTARGET=C -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.c cd obj/doc/ && /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/tools/linuxdoc -B latex --output=tex bird.sgml Processing file bird.sgml ./tools/progdoc . obj/doc/prog.sgml ./doc/prog-root doc/prog-head.sgml doc/prog-intro.sgml ./nest/Doc rt-fib.c rt-table.c rt-attr.c proto.sgml proto.c proto-hooks.c iface.c mpls.c neighbor.c cli.c locks.c ./conf/Doc conf.c cf-lex.l ./filter/Doc filter.c tree.c trie.c ./proto/Doc ./proto/babel/Doc babel.c packets.c ./proto/bfd/Doc bfd.c ./proto/bgp/Doc bgp.c packets.c attrs.c ./proto/bmp/Doc bmp.c ./proto/ospf/Doc ospf.c topology.c neighbor.c iface.c packet.c lsalib.c dbdes.c rt.c ./proto/pipe/Doc pipe.c ./proto/radv/Doc radv.c packets.c ./proto/rip/Doc rip.c packets.c ./proto/rpki/Doc rpki.c packets.c transport.c tcp_transport.c ssh_transport.c ./proto/static/Doc static.c ../nest/rt-dev.c ./sysdep/Doc sysdep.sgml ./sysdep/unix/Doc log.c krt.c ./lib/Doc ip.c lists.c checksum.c bitops.c patmatch.c printf.c xmalloc.c tbf.c mac.c flowspec.c resource.sgml resource.c mempool.c slab.c id_alloc.c event.c pubsub.c ../sysdep/unix/io.c doc/prog-foot.sgml Warning(152): Function parameter 'addr_type' not described in 'fib_init' Warning(152): Function parameter 'node_offset' not described in 'fib_init' Warning(267): Function parameter 'a' not described in 'fib_find' Warning(326): Function parameter 'a' not described in 'fib_get' Warning(723): Function parameter 'tp' not described in 'net_roa_check' Warning(921): Function parameter 'force_upstream' not described in 'aspa_check' Warning(1396): Function parameter 'trte' not described in 'rt_notify_basic' Warning(3205): Function parameter 'req' not described in 'rt_refresh_begin' Warning(3250): Function parameter 'req' not described in 'rt_refresh_end' Warning(3291): Function parameter 'dreq' not described in 'rte_dump' Warning(3309): Function parameter 'dreq' not described in 'rt_dump' Warning(3309): Function parameter 'tab' not described in 'rt_dump' Warning(3331): Function parameter 'dreq' not described in 'rt_dump_all' Warning(4090): Function parameter '_tab' not described in 'rt_prune_table' Error(4231): cannot understand prototype: 'const struct f_trie * rt_lock_trie(struct rtable_private *tab) ' Warning(5084): Function parameter 'file' not described in 'rt_lock_table_priv' Warning(5084): Function parameter 'line' not described in 'rt_lock_table_priv' Warning(5099): Function parameter 'file' not described in 'rt_unlock_table_priv' Warning(5099): Function parameter 'line' not described in 'rt_unlock_table_priv' Warning(531): Function parameter 'xin' not described in 'nexthop_merge' Warning(531): Function parameter 'yin' not described in 'nexthop_merge' Warning(962): Function parameter 'e' not described in 'ea_do_prune' Warning(1083): Function parameter 'upto' not described in 'ea_scan' Warning(1112): Function parameter 'upto' not described in 'ea_merge' Warning(1564): Function parameter 'dreq' not described in 'ea_dump' Warning(2648): Function parameter 'dreq' not described in 'ea_dump_all' WARN(450): Cannot understand * # Automatic ROA reloads on line 450 - I thought it was a doc line Warning(1581): Function parameter 'cf' not described in 'proto_new' Warning(2269): Function parameter 'UNUSED' not described in 'graceful_recovery_done' Warning(2394): Function parameter 'c' not described in 'channel_graceful_restart_lock' Warning(2422): Function parameter 'c' not described in 'channel_graceful_restart_unlock' Warning(2438): Function parameter 'dreq' not described in 'protos_dump_all' Warning(2831): Function parameter 'state' not described in 'proto_notify_state' Warning(91): Function parameter 'dreq' not described in 'ifa_dump' Warning(116): Function parameter 'dreq' not described in 'if_dump' Warning(165): Function parameter 'dreq' not described in 'if_dump_all' Warning(306): Function parameter 'dreq' not described in 'neigh_dump' Warning(325): Function parameter 'dreq' not described in 'neigh_dump_all' Warning(122): Function parameter 'args' not described in 'cli_vprintf' Warning(179): Function parameter 'main_config' not described in 'cli_parse' Warning(417): Function parameter 'cr' not described in 'config_commit' Warning(583): Function parameter 'gr' not described in 'order_shutdown' Warning(672): Function parameter 'conf' not described in 'cf_get_symbol' Warning(688): Function parameter 'conf' not described in 'cf_localize_symbol' Warning(838): Function parameter 'conf' not described in 'cf_push_scope' Warning(856): Function parameter 'conf' not described in 'cf_pop_scope' Warning(871): Function parameter 'conf' not described in 'cf_push_soft_scope' Warning(885): Function parameter 'conf' not described in 'cf_pop_soft_scope' Warning(900): Function parameter 'conf' not described in 'cf_swap_soft_scope' Warning(125): Function parameter 'line' not described in 'interpret' Warning(125): Function parameter 'argc' not described in 'interpret' Warning(125): Function parameter 'argv' not described in 'interpret' Warning(125): Function parameter 'resc' not described in 'interpret' Warning(125): Function parameter 'resv' not described in 'interpret' Warning(259): Function parameter 'argc' not described in 'f_eval_rte' Warning(259): Function parameter 'argv' not described in 'f_eval_rte' Warning(259): Function parameter 'resc' not described in 'f_eval_rte' Warning(259): Function parameter 'resv' not described in 'f_eval_rte' Warning(360): Function parameter 'new' not described in 'filter_commit' Warning(360): Function parameter 'old' not described in 'filter_commit' Error(29): cannot understand prototype: 'const struct f_tree * find_tree(const struct f_tree *t, const struct f_val *val) ' Error(52): cannot understand prototype: 'const struct f_tree * find_tree_linear(const struct f_tree *t, const struct f_val *val) ' Warning(91): Function parameter 'merge' not described in 'build_tree' Warning(1001): Function parameter 'rtable' not described in 'babel_send_update_' Warning(2105): Function parameter 'hdr' not described in 'babel_auth_add_tlvs' Warning(1077): Function parameter 'p' not described in 'bgp_start_timer' Warning(2159): Function parameter 'bs' not described in 'bgp_find_listen' Warning(2221): Function parameter 'UNUSED' not described in 'bgp_incoming_connection' Warning(1524): Function parameter 'a' not described in 'bgp_export_attrs' Warning(453): Function parameter 'stream' not described in 'bmp_put_per_peer_hdr' Warning(453): Function parameter 'peer' not described in 'bmp_put_per_peer_hdr' Warning(1480): Function parameter 'P' not described in 'bmp_start' Warning(491): Function parameter 'C' not described in 'ospf_preexport' Warning(491): Function parameter 'e' not described in 'ospf_preexport' Warning(668): Function parameter 'CF' not described in 'ospf_reconfigure' Warning(1173): Function parameter 'dn' not described in 'ospf_originate_ext_lsa' Warning(261): Function parameter 'n' not described in 'rip_update_rte' Warning(311): Function parameter 'n' not described in 'rip_withdraw_rte' Warning(733): Function parameter 'UNUSED' not described in 'rpki_reconfigure_cache' Warning(1180): Function parameter '(*buf' not described in 'flow_explicate_part' Warning(74): Function parameter 'dom' not described in 'rp_new' Warning(256): Function parameter 'dreq' not described in 'rdump' Error: Cannot open file ./lib/id_alloc.c Warning(282): Function parameter 'limit' not described in 'ev_run_list_limited' Warning(2503): Function parameter 'flag' not described in 'io_log_event' cd obj/doc/ && /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/tools/linuxdoc -B latex --output=tex prog.sgml Processing file prog.sgml cd obj/doc/ && /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/tools/linuxdoc -B html bird.sgml Processing file bird.sgml cd obj/doc/ && /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/tools/linuxdoc -B html prog.sgml Processing file prog.sgml bison -Dparse.lac=full -Dparse.error=verbose -dv -pcf_ -b obj/conf/cf-parse obj/conf/cf-parse.y clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -Wno-sign-compare -Wno-unused-function -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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/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:25: 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:109: ./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/bmp/config.Y:11: In file included from ./proto/bmp/bmp.h:112: ./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/bmp/config.Y:11: In file included from ./proto/bmp/bmp.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) | ^ | == In file included from conf/cf-lex.l:54: conf/confbase.Y:184: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] 184 | { "define", DEFINE }, | ^~~~~~~~ conf/confbase.Y:184: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] 184 | { "on", ON }, | ^~~~ conf/confbase.Y:184: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] 184 | { "off", OFF }, | ^~~~~ conf/confbase.Y:184: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] 184 | { "yes", YES }, | ^~~~~ conf/confbase.Y:184: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] 184 | { "no", NO }, | ^~~~ conf/confbase.Y:184: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] 184 | { "s", S }, | ^~~ conf/confbase.Y:184: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] 184 | { "ms", MS }, | ^~~~ conf/confbase.Y:184: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] 184 | { "us", US }, | ^~~~ conf/confbase.Y:184: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] 184 | { "port", PORT }, | ^~~~~~ conf/confbase.Y:184: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] 184 | { "vpn", VPN }, | ^~~~~ conf/confbase.Y:184: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] 184 | { "eth", ETH }, | ^~~~~ conf/confbase.Y:184: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] 184 | { "vlan", VLAN }, | ^~~~~~ conf/confbase.Y:184: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] 184 | { "mpls", MPLS }, | ^~~~~~ conf/confbase.Y:184: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] 184 | { "from", FROM }, | ^~~~~~ conf/confbase.Y:184: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] 184 | { "max", MAX }, | ^~~~~ conf/confbase.Y:184: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] 184 | { "as", AS }, | ^~~~ conf/confbase.Y:184: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] 184 | { "neighbor", NEIGHBOR }, | ^~~~~~~~~~ conf/confbase.Y:185: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] 185 | { "evpn", EVPN }, | ^~~~~~ conf/confbase.Y:185: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] 185 | { "ead", EAD }, | ^~~~~ conf/confbase.Y:185: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] 185 | { "mac", MAC }, | ^~~~~ conf/confbase.Y:185: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] 185 | { "imet", IMET }, | ^~~~~~ conf/confbase.Y:185: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] 185 | { "es", ES }, | ^~~~ 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:364: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] 364 | { "in", IN }, | ^~~~ filter/config.Y:365: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] 365 | { "function", FUNCTION }, | ^~~~~~~~~~ filter/config.Y:365: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] 365 | { "print", PRINT }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "printn", PRINTN }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "unset", UNSET }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "return", RETURN }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "accept", ACCEPT }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "reject", REJECT }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "error", ERROR }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "int", INT }, | ^~~~~ filter/config.Y:365: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] 365 | { "bool", BOOL }, | ^~~~~~ filter/config.Y:365: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] 365 | { "ip", IP }, | ^~~~ filter/config.Y:365: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] 365 | { "prefix", PREFIX }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "rd", RD }, | ^~~~ filter/config.Y:365: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] 365 | { "pair", PAIR }, | ^~~~~~ filter/config.Y:365: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] 365 | { "quad", QUAD }, | ^~~~~~ filter/config.Y:365: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] 365 | { "ec", EC }, | ^~~~ filter/config.Y:365: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] 365 | { "lc", LC }, | ^~~~ filter/config.Y:365: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] 365 | { "enum", ENUM }, | ^~~~~~ filter/config.Y:365: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] 365 | { "set", SET }, | ^~~~~ filter/config.Y:365: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] 365 | { "string", STRING }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "bytestring", BYTESTRING }, | ^~~~~~~~~~~~ filter/config.Y:365: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] 365 | { "bgpmask", BGPMASK }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "bgppath", BGPPATH }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "clist", CLIST }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "eclist", ECLIST }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "lclist", LCLIST }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "if", IF }, | ^~~~ filter/config.Y:365: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] 365 | { "then", THEN }, | ^~~~~~ filter/config.Y:365: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] 365 | { "else", ELSE }, | ^~~~~~ filter/config.Y:365: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] 365 | { "case", CASE }, | ^~~~~~ filter/config.Y:365: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] 365 | { "for", FOR }, | ^~~~~ filter/config.Y:365: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] 365 | { "do", DO }, | ^~~~ filter/config.Y:365: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] 365 | { "true", TRUE }, | ^~~~~~ filter/config.Y:365: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] 365 | { "false", FALSE }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "rt", RT }, | ^~~~ filter/config.Y:365: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] 365 | { "ro", RO }, | ^~~~ filter/config.Y:365: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] 365 | { "unknown", UNKNOWN }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "generic", GENERIC }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "gw", GW }, | ^~~~ filter/config.Y:365: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] 365 | { "net", NET }, | ^~~~~ filter/config.Y:365: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] 365 | { "scope", SCOPE }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "dest", DEST }, | ^~~~~~ filter/config.Y:365: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] 365 | { "ifname", IFNAME }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "ifindex", IFINDEX }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "weight", WEIGHT }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "gw_mpls", GW_MPLS }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "onlink", ONLINK }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "roa_check", ROA_CHECK }, | ^~~~~~~~~~~ filter/config.Y:365: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] 365 | { "aspa_check", ASPA_CHECK }, | ^~~~~~~~~~~~ filter/config.Y:365: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] 365 | { "defined", DEFINED }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "add", ADD }, | ^~~~~ filter/config.Y:365: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] 365 | { "delete", DELETE }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "reset", RESET }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "prepend", PREPEND }, | ^~~~~~~~~ filter/config.Y:365: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] 365 | { "append", APPEND }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "empty", EMPTY }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "filter", FILTER }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "where", WHERE }, | ^~~~~~~ filter/config.Y:365: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] 365 | { "eval", EVAL }, | ^~~~~~ filter/config.Y:365: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] 365 | { "attribute", ATTRIBUTE }, | ^~~~~~~~~~~ filter/config.Y:365: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] 365 | { "from_hex", FROM_HEX }, | ^~~~~~~~~~ filter/config.Y:365: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] 365 | { "bt_assert", BT_ASSERT }, | ^~~~~~~~~~~ filter/config.Y:365: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] 365 | { "bt_test_suite", BT_TEST_SUITE }, | ^~~~~~~~~~~~~~~ filter/config.Y:365: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] 365 | { "bt_check_assign", BT_CHECK_ASSIGN }, | ^~~~~~~~~~~~~~~~~ filter/config.Y:365: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] 365 | { "bt_test_same", BT_TEST_SAME }, | ^~~~~~~~~~~~~~ filter/config.Y:365: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] 365 | { "format", FORMAT }, | ^~~~~~~~ filter/config.Y:365: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] 365 | { "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:156: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] 156 | { "neighbors", NEIGHBORS }, | ^~~~~~~~~~~ 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[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_ETH", -((T_ENUM_NET_TYPE<<16) | NET_ETH) }, | ^~~~~~~~~ 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: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_EVPN", -((T_ENUM_NET_TYPE<<16) | NET_EVPN) }, | ^~~~~~~~~~ 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_NEIGHBOR", -((T_ENUM_NET_TYPE<<16) | NET_NEIGHBOR) }, | ^~~~~~~~~~~~~~ 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:183: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] 183 | { "net_evpn_type", NET_EVPN_TYPE }, | ^~~~~~~~~~~~~~~ nest/config.Y:183: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] 183 | { "NET_EVPN_EAD", -((T_ENUM_NET_EVPN_TYPE<<16) | NET_EVPN_EAD) }, | ^~~~~~~~~~~~~~ nest/config.Y:183: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] 183 | { "NET_EVPN_MAC", -((T_ENUM_NET_EVPN_TYPE<<16) | NET_EVPN_MAC) }, | ^~~~~~~~~~~~~~ nest/config.Y:183: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] 183 | { "NET_EVPN_IMET", -((T_ENUM_NET_EVPN_TYPE<<16) | NET_EVPN_IMET) }, | ^~~~~~~~~~~~~~~ nest/config.Y:183: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] 183 | { "NET_EVPN_ES", -((T_ENUM_NET_EVPN_TYPE<<16) | NET_EVPN_ES) }, | ^~~~~~~~~~~~~ nest/config.Y:694: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] 694 | { "show", SHOW }, | ^~~~~~ nest/config.Y:694: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] 694 | { "status", STATUS }, | ^~~~~~~~ nest/config.Y:714: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] 714 | { "summary", SUMMARY }, | ^~~~~~~~~ nest/config.Y:947: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] 947 | { "symbols", SYMBOLS }, | ^~~~~~~~~ nest/config.Y:970: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] 970 | { "dump", DUMP }, | ^~~~~~ nest/config.Y:970: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] 970 | { "resources", RESOURCES }, | ^~~~~~~~~~~ nest/config.Y:972: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] 972 | { "sockets", SOCKETS }, | ^~~~~~~~~ nest/config.Y:974: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] 974 | { "ao", AO }, | ^~~~ nest/config.Y:974: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] 974 | { "keys", KEYS }, | ^~~~~~ nest/config.Y:982: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] 982 | { "attributes", ATTRIBUTES }, | ^~~~~~~~~~~~ nest/config.Y:1010: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] 1010 | { "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:193: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] 193 | { "ranges", RANGES }, | ^~~~~~~~ proto/aggregator/config.Y:22: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] 22 | { "aggregator", AGGREGATOR }, | ^~~~~~~~~~~~ proto/aggregator/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 | { "peer", PEER }, | ^~~~~~ proto/aggregator/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 | { "merge", MERGE }, | ^~~~~~~ proto/aggregator/config.Y:22: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] 22 | { "by", BY }, | ^~~~ 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[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "rx", RX }, | ^~~~ proto/bfd/config.Y:24: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] 24 | { "tx", TX }, | ^~~~ 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 | { "interval", INTERVAL }, | ^~~~~~~~~~ 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[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[15]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 24 | { "authentication", AUTHENTICATION }, | ^~~~~~~~~~~~~~~~ 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/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[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[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[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/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[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/bmp/config.Y:19: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] 19 | { "bmp", BMP }, | ^~~~~ proto/bmp/config.Y:19: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] 19 | { "station", STATION }, | ^~~~~~~~~ proto/bmp/config.Y:19: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] 19 | { "system", SYSTEM }, | ^~~~~~~~ proto/bmp/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 | { "monitoring", MONITORING }, | ^~~~~~~~~~~~ proto/bmp/config.Y:19: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] 19 | { "rib", RIB }, | ^~~~~ proto/bmp/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 | { "pre_policy", PRE_POLICY }, | ^~~~~~~~~~~~ proto/bmp/config.Y:19: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] 19 | { "post_policy", POST_POLICY }, | ^~~~~~~~~~~~~ proto/bridge/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 | { "bridge", BRIDGE }, | ^~~~~~~~ proto/bridge/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 | { "device", DEVICE }, | ^~~~~~~~ proto/bridge/config.Y:22: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] 22 | { "filtering", FILTERING }, | ^~~~~~~~~~~ proto/bridge/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 | { "scan", SCAN }, | ^~~~~~ proto/bridge/config.Y:22: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] 22 | { "kbr_source", KBR_SOURCE }, | ^~~~~~~~~~~~ proto/bridge/config.Y:24: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] 24 | { "KBR_SRC_BIRD", -((T_ENUM_KBR_SOURCE<<16) | KBR_SRC_BIRD) }, | ^~~~~~~~~~~~~~ proto/bridge/config.Y:24: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] 24 | { "KBR_SRC_LOCAL", -((T_ENUM_KBR_SOURCE<<16) | KBR_SRC_LOCAL) }, | ^~~~~~~~~~~~~~~ proto/bridge/config.Y:24: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] 24 | { "KBR_SRC_STATIC", -((T_ENUM_KBR_SOURCE<<16) | KBR_SRC_STATIC) }, | ^~~~~~~~~~~~~~~~ proto/bridge/config.Y:24: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] 24 | { "KBR_SRC_DYNAMIC", -((T_ENUM_KBR_SOURCE<<16) | KBR_SRC_DYNAMIC) }, | ^~~~~~~~~~~~~~~~~ proto/evpn/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 | { "target", TARGET }, | ^~~~~~~~ proto/evpn/config.Y:25: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] 25 | { "distinguisher", DISTINGUISHER }, | ^~~~~~~~~~~~~~~ proto/evpn/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 | { "vni", VNI }, | ^~~~~ proto/evpn/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 | { "vid", VID }, | ^~~~~ proto/evpn/config.Y:25: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] 25 | { "encapsulation", ENCAPSULATION }, | ^~~~~~~~~~~~~~~ proto/evpn/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 | { "vxlan", VXLAN }, | ^~~~~~~ proto/l3vpn/config.Y:42: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] 42 | { "l3vpn", L3VPN }, | ^~~~~~~ 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[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 | { "ospf", OSPF }, | ^~~~~~ 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 | { "area", AREA }, | ^~~~~~ proto/ospf/config.Y:195: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] 195 | { "rfc1583compat", RFC1583COMPAT }, | ^~~~~~~~~~~~~~~ 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 | { "stub", STUB }, | ^~~~~~ 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 | { "tick", TICK }, | ^~~~~~ 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 | { "cost2", COST2 }, | ^~~~~~~ proto/ospf/config.Y:195: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] 195 | { "retransmit", RETRANSMIT }, | ^~~~~~~~~~~~ proto/ospf/config.Y:196: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] 196 | { "transmit", TRANSMIT }, | ^~~~~~~~~~ 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 | { "dead", DEAD }, | ^~~~~~ proto/ospf/config.Y:196: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] 196 | { "broadcast", BROADCAST }, | ^~~~~~~~~~~ proto/ospf/config.Y:196: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] 196 | { "bcast", BCAST }, | ^~~~~~~ proto/ospf/config.Y:197: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] 197 | { "nonbroadcast", NONBROADCAST }, | ^~~~~~~~~~~~~~ proto/ospf/config.Y:197: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] 197 | { "nbma", NBMA }, | ^~~~~~ proto/ospf/config.Y:197: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] 197 | { "pointopoint", POINTOPOINT }, | ^~~~~~~~~~~~~ proto/ospf/config.Y:197: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] 197 | { "ptp", PTP }, | ^~~~~ proto/ospf/config.Y:197: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] 197 | { "pointomultipoint", POINTOMULTIPOINT }, | ^~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:197: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] 197 | { "ptmp", PTMP }, | ^~~~~~ proto/ospf/config.Y:198: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] 198 | { "cryptographic", CRYPTOGRAPHIC }, | ^~~~~~~~~~~~~~~ proto/ospf/config.Y:199: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] 199 | { "eligible", ELIGIBLE }, | ^~~~~~~~~~ proto/ospf/config.Y:199: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] 199 | { "poll", POLL }, | ^~~~~~ proto/ospf/config.Y:199: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] 199 | { "networks", NETWORKS }, | ^~~~~~~~~~ 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 | { "hidden", HIDDEN }, | ^~~~~~~~ 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 | { "virtual", VIRTUAL }, | ^~~~~~~~~ proto/ospf/config.Y:199: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] 199 | { "only", ONLY }, | ^~~~~~ 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 | { "large", LARGE }, | ^~~~~~~ proto/ospf/config.Y:200: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] 200 | { "normal", NORMAL }, | ^~~~~~~~ proto/ospf/config.Y:200: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] 200 | { "stubnet", STUBNET }, | ^~~~~~~~~ proto/ospf/config.Y:200: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] 200 | { "tag", TAG }, | ^~~~~ proto/ospf/config.Y:201: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] 201 | { "lsadb", LSADB }, | ^~~~~~~ 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 | { "ecmp", ECMP }, | ^~~~~~ 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 | { "nssa", NSSA }, | ^~~~~~ proto/ospf/config.Y:201: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] 201 | { "translator", TRANSLATOR }, | ^~~~~~~~~~~~ proto/ospf/config.Y:201: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] 201 | { "stability", STABILITY }, | ^~~~~~~~~~~ proto/ospf/config.Y:202: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] 202 | { "lsid", LSID }, | ^~~~~~ proto/ospf/config.Y:202: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] 202 | { "instance", INSTANCE }, | ^~~~~~~~~~ proto/ospf/config.Y:202: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] 202 | { "real", REAL }, | ^~~~~~ 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 | { "netmask", NETMASK }, | ^~~~~~~~~ proto/ospf/config.Y:203: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] 203 | { "lsa", LSA }, | ^~~~~ proto/ospf/config.Y:203: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] 203 | { "suppression", SUPPRESSION }, | ^~~~~~~~~~~~~ proto/ospf/config.Y:203: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] 203 | { "rfc5838", RFC5838 }, | ^~~~~~~~~ proto/ospf/config.Y:203: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] 203 | { "pe", PE }, | ^~~~ proto/ospf/config.Y:522: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] 522 | { "topology", TOPOLOGY }, | ^~~~~~~~~~ proto/ospf/config.Y:530: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] 530 | { "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[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: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 | { "pd", PD }, | ^~~~ 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 | { "discovery", DISCOVERY }, | ^~~~~~~~~~~ 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[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:36: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] 36 | { "rip", RIP }, | ^~~~~ proto/rip/config.Y:36: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] 36 | { "infinity", INFINITY }, | ^~~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "timeout", TIMEOUT }, | ^~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "garbage", GARBAGE }, | ^~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "mode", MODE }, | ^~~~~~ proto/rip/config.Y:36: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] 36 | { "version", VERSION }, | ^~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "split", SPLIT }, | ^~~~~~~ proto/rip/config.Y:36: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] 36 | { "horizon", HORIZON }, | ^~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "poison", POISON }, | ^~~~~~~~ proto/rip/config.Y:36: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] 36 | { "reverse", REVERSE }, | ^~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "plaintext", PLAINTEXT }, | ^~~~~~~~~~~ proto/rip/config.Y:36: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] 36 | { "demand", DEMAND }, | ^~~~~~~~ proto/rip/config.Y:36: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] 36 | { "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/linux/netlink.Y:13: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] 13 | { "kernel", KERNEL }, | ^~~~~~~~ sysdep/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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/linux/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 }, | ^~~~~~~~~~~~~~~~~~~~~ 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:261: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] 261 | { "configure", CONFIGURE }, | ^~~~~~~~~~~ sysdep/unix/config.Y:283: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] 283 | { "down", DOWN }, | ^~~~~~ 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[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 }, | ^~~~~~~ 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:9868: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] 9868 | YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9869 | (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:590: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] 590 | uint l = strlen(c); | ^ /usr/include/string.h:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ conf/cf-lex.l:601: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] 601 | 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:412:21: note: passing argument to parameter 'c' here 412 | cf_hash(const byte *c) | ^ conf/cf-lex.l:612: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] 612 | uint l = strlen(c); | ^ /usr/include/string.h:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ conf/cf-lex.l:629: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] 629 | 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:412:21: note: passing argument to parameter 'c' here 412 | cf_hash(const byte *c) | ^ conf/cf-lex.l:653: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] 653 | scope->hash.data && (s = HASH_FIND(scope->hash, SYM, c))) | ^ /usr/include/string.h:171:50: note: passing argument to parameter '__s2' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ conf/cf-lex.l:699: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] 699 | return cf_new_symbol(conf->current_scope, conf->pool, conf->mem, sym->name); | ^~~~~~~~~ conf/cf-lex.l:583:81: note: passing argument to parameter 'c' here 583 | cf_new_symbol(struct sym_scope *scope, pool *p, struct linpool *lp, const byte *c) | ^ conf/cf-lex.l:712: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] 712 | s = cf_get_symbol(conf, buf); | ^~~ conf/cf-lex.l:671:48: note: passing argument to parameter 'c' here 671 | cf_get_symbol(struct config *conf, const byte *c) | ^ conf/cf-lex.l:725: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] 725 | struct symbol *sym = cf_get_symbol(new_config, data); | ^~~~ conf/cf-lex.l:671:48: note: passing argument to parameter 'c' here 671 | cf_get_symbol(struct config *conf, const byte *c) | ^ conf/cf-lex.l:749: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] 749 | def->sym = cf_root_symbol(def->name, &global_filter_scope); | ^~~~~~~~~ conf/cf-lex.l:610:28: note: passing argument to parameter 'c' here 610 | cf_root_symbol(const byte *c, struct sym_scope *ss) | ^ conf/cf-lex.l:770: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] 770 | struct symbol *sym = cf_find_symbol_scope(c ? c->root_scope : &global_filter_scope, name); | ^~~~ conf/cf-lex.l:646:65: note: passing argument to parameter 'c' here 646 | cf_find_symbol_scope(const struct sym_scope *scope, const byte *c) | ^ 682 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:558: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] 558 | 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:558: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] 558 | 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:720: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] 720 | case T_EC: ec_format(buf2, v->val.ec); buffer_print(buf, "%s", buf2); return; | ^~~~ ./lib/attrs.h:260:21: note: passing argument to parameter 'buf' here 260 | int ec_format(byte *buf, u64 ec); | ^ filter/data.c:721: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] 721 | case T_LC: lc_format(buf2, v->val.lc); buffer_print(buf, "%s", buf2); return; | ^~~~ ./lib/attrs.h:262:21: note: passing argument to parameter 'buf' here 262 | int lc_format(byte *buf, lcomm lc); | ^ filter/data.c:727: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] 727 | 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:728: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] 728 | case T_CLIST: int_set_format(v->val.ad, 1, -1, buf2, 1000); buffer_print(buf, "(clist %s)", buf2); return; | ^~~~ ./lib/attrs.h:259:79: note: passing argument to parameter 'buf' here 259 | 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:729: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] 729 | case T_ECLIST: ec_set_format(v->val.ad, -1, buf2, 1000); buffer_print(buf, "(eclist %s)", buf2); return; | ^~~~ ./lib/attrs.h:261:60: note: passing argument to parameter 'buf' here 261 | int ec_set_format(const struct adata *set, int from, byte *buf, uint size) ACCESS_WRITE(3, 4); | ^ filter/data.c:730: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] 730 | case T_LCLIST: lc_set_format(v->val.ad, -1, buf2, 1000); buffer_print(buf, "(lclist %s)", buf2); return; | ^~~~ ./lib/attrs.h:263:60: note: passing argument to parameter 'buf' here 263 | int lc_set_format(const struct adata *set, int from, byte *buf, uint size) ACCESS_WRITE(3, 4); | ^ filter/data.c:743: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] 743 | 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:751: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] 751 | .start = val_dump_buffer, | ^~~~~~~~~~~~~~~ filter/data.c:752: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] 752 | .end = val_dump_buffer + 1024, | ^~~~~~~~~~~~~~~~~~~~~~ 24 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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); | ^ 17 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 10 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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 filter/filter.c:169: filter/f-inst.c:1007:21: warning: allocation of insufficient size '20' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 1007 | net_addr *src = falloc(sizeof(net_addr_ip6)); | ^ filter/filter.c:166:22: note: expanded from macro 'falloc' 166 | #define falloc(size) tmp_alloc(size) | ^ ./lib/resource.h:125:23: note: expanded from macro 'tmp_alloc' 125 | #define tmp_alloc(sz) lp_alloc(tmp_linpool, sz) | ^ In file included from filter/filter.c:169: filter/f-inst.c:1043:21: warning: allocation of insufficient size '20' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 1043 | net_addr *dst = falloc(sizeof(net_addr_ip6)); | ^ filter/filter.c:166:22: note: expanded from macro 'falloc' 166 | #define falloc(size) tmp_alloc(size) | ^ ./lib/resource.h:125:23: note: expanded from macro 'tmp_alloc' 125 | #define tmp_alloc(sz) lp_alloc(tmp_linpool, sz) | ^ 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) | ^ 17 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 10 warnings generated. TEXINPUTS=:/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex pdflatex -output-directory=obj/doc/ obj/doc/bird.tex This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./obj/doc/bird.tex LaTeX2e <2025-11-01> L3 programming layer <2026-03-20> (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2025/01/22 v1.4n Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty (/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty (/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty) (/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty (/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty))) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/generic/stringenc/stringenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty) (/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty (/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def (/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty))) (/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty) (/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex/birddoc.sty) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/qwertz.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/latin1.def)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)))) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/null.sty) (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) No file bird.aux. (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx)) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) Underfull \hbox (badness 10000) in paragraph at lines 24--24 [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] No file bird.toc. [2] Chapter 1. [3{/usr/share/texlive/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] [4] [5] Chapter 2. LaTeX Warning: Hyper reference `rtable-sorted' on page 6 undefined on input lin e 322. LaTeX Warning: Hyper reference `route-attributes' on page 6 undefined on input line 337. [6] [7] [8] [9] LaTeX Warning: Hyper reference `cli-graceful-restart' on page 10 undefined on i nput line 668. LaTeX Warning: Hyper reference `cli-down' on page 10 undefined on input line 66 9. LaTeX Warning: Hyper reference `rta-mpls-label' on page 10 undefined on input l ine 711. LaTeX Warning: Hyper reference `mpls-routes' on page 10 undefined on input line 716. LaTeX Warning: Hyper reference `rta-mpls-policy' on page 10 undefined on input line 721. LaTeX Warning: Hyper reference `mpls-channel-label-policy' on page 10 undefined on input line 722. [10] [11] Chapter 3. LaTeX Warning: Hyper reference `opt-define' on page 12 undefined on input line 783. LaTeX Warning: Hyper reference `filters' on page 12 undefined on input line 785 . Underfull \hbox (badness 10000) in paragraph at lines 848--854 [][]\OT1/cmtt/m/n/10 log "\OT1/cmr/m/it/10 file-name\OT1/cmtt/m/n/10 " [\OT1 /cmr/m/it/10 limit \OT1/cmtt/m/n/10 "\OT1/cmr/m/it/10 backup\OT1/cmtt/m/n/10 "] $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 fixed "\OT1/cmr/m/it/10 file-name\OT1/cm tt/m/n/10 " \OT1/cmr/m/it/10 size $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 syslog [name \OT1/cmr/m/it/10 name\OT1/cmtt/m/n/10 ] $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/ n/10 stderr $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 udp [12] LaTeX Warning: Hyper reference `proto-debug' on page 13 undefined on input line 878. LaTeX Warning: Hyper reference `channel-debug' on page 13 undefined on input li ne 885. LaTeX Warning: Hyper reference `rtable-debug' on page 13 undefined on input lin e 892. [13] LaTeX Warning: Hyper reference `proto-iface' on page 14 undefined on input line 1000. LaTeX Warning: Hyper reference `rtable-opts' on page 14 undefined on input line 1051. LaTeX Warning: Hyper reference `mpls-opts' on page 14 undefined on input line 1 058. [14] [15] LaTeX Warning: Hyper reference `rpki' on page 16 undefined on input line 1196. LaTeX Warning: Hyper reference `bgp-gateway' on page 16 undefined on input line 1197. LaTeX Warning: Hyper reference `bgp-validate' on page 16 undefined on input lin e 1198. LaTeX Warning: Hyper reference `rtable-export-settle-time' on page 16 undefined on input line 1251. [16] LaTeX Warning: Hyper reference `channel-debug' on page 17 undefined on input li ne 1270. LaTeX Warning: Hyper reference `channel-debug' on page 17 undefined on input li ne 1331. [17] LaTeX Warning: Hyper reference `bgp-strict-bind' on page 18 undefined on input line 1382. LaTeX Warning: Hyper reference `channel-opts' on page 18 undefined on input lin e 1389. [18] LaTeX Warning: Hyper reference `type-bytestring' on page 19 undefined on input line 1480. Underfull \hbox (badness 10000) in paragraph at lines 1536--1541 [][]\OT1/cmtt/m/n/10 algorithm ( keyed md5 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/ n/10 keyed sha1 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 hmac sha1 $\OMS/cmsy/m/n/ 10 j$ \OT1/cmtt/m/n/10 hmac sha256 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 hmac s ha384 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 hmac sha512 $\OMS/cmsy/m/n/10 j$ LaTeX Warning: Hyper reference `proto-debug' on page 19 undefined on input line 1564. [19] LaTeX Warning: Hyper reference `bgp-import-table' on page 20 undefined on input line 1623. LaTeX Warning: Hyper reference `bgp-export-table' on page 20 undefined on input line 1624. [20] LaTeX Warning: Hyper reference `channel-opts' on page 21 undefined on input lin e 1777. [21] LaTeX Warning: Hyper reference `rta-mpls-label' on page 22 undefined on input l ine 1799. [22] Chapter 4. [23] Underfull \hbox (badness 10000) in paragraph at lines 2001--2004 [][]\OT1/cmtt/m/n/10 show ospf lsadb [global $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/ m/n/10 area \OT1/cmr/m/it/10 id $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 link] [ty pe \OT1/cmr/m/it/10 num-ber\OT1/cmtt/m/n/10 ] [lsid \OT1/cmr/m/it/10 id\OT1/cmt t/m/n/10 ] [self $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 router \OT1/cmr/m/it/10 id\OT1/cmtt/m/n/10 ] Underfull \hbox (badness 10000) in paragraph at lines 2022--2025 [][]\OT1/cmtt/m/n/10 show bfd sessions [\OT1/cmr/m/it/10 name\OT1/cmtt/m/n/1 0 ] [address (\OT1/cmr/m/it/10 IP$\OMS/cmsy/m/n/10 j$\OT1/cmr/m/it/10 prefix\OT 1/cmtt/m/n/10 )] [(interface$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 dev) "\OT1/cmr /m/it/10 name\OT1/cmtt/m/n/10 "] [ipv4$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 ipv6 ] Underfull \hbox (badness 10000) in paragraph at lines 2034--2037 [][]\OT1/cmtt/m/n/10 show route [[(for$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 i n)] \OT1/cmr/m/it/10 pre-fix$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 for \OT1/cmr/m /it/10 IP\OT1/cmtt/m/n/10 ] [table (\OT1/cmr/m/it/10 t$\OMS/cmsy/m/n/10 j$\OT1/ cmtt/m/n/10 all)] [(import$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 export) table \O T1/cmr/m/it/10 p\OT1/cmtt/m/n/10 .\OT1/cmr/m/it/10 c\OT1/cmtt/m/n/10 ] [filter [24] LaTeX Warning: Hyper reference `mrt' on page 25 undefined on input line 2103. LaTeX Warning: Hyper reference `cli-configure-undo' on page 25 undefined on inp ut line 2114. [25] LaTeX Warning: Hyper reference `opt-timeformat' on page 26 undefined on input l ine 2187. LaTeX Warning: Hyper reference `graceful-restart' on page 26 undefined on input line 2198. Underfull \hbox (badness 10000) in paragraph at lines 2207--2214 [][]\OT1/cmtt/m/n/10 dump resources$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 sock ets$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 ao keys$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/ n/10 events$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 interfaces$\OMS/cmsy/m/n/10 j$\ OT1/cmtt/m/n/10 neighbors$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 attributes$\OMS/c msy/m/n/10 j$\OT1/cmtt/m/n/10 attribute LaTeX Warning: Hyper reference `opt-log' on page 26 undefined on input line 221 9. [26] Chapter 5. [27] Underfull \hbox (badness 2165) in paragraph at lines 2425--2431 []\OT1/cmr/m/n/10 Bytestring lit-er-als are writ-ten as a se-quence of hex-adec -i-mal digit pairs, op-tion-ally colon- Underfull \hbox (badness 1852) in paragraph at lines 2425--2431 \OT1/cmr/m/n/10 separated. A bytestring spec-i-fied this way must be ei-ther at least 16 bytes (32 dig-its) [28] LaTeX Warning: Hyper reference `evpn-routes' on page 29 undefined on input line 2512. [29] Underfull \hbox (badness 5050) in paragraph at lines 2561--2568 []\OT1/cmr/m/n/10 For pair sets, ex-pres-sions like \OT1/cmtt/m/n/10 (123,*) \O T1/cmr/m/n/10 can be used to de-note ranges (in that case Underfull \hbox (badness 2393) in paragraph at lines 2612--2620 []\OT1/cmr/m/n/10 There are also two short-hands for pre-fix pat-terns: \OT1/cm r/m/it/10 ad-dress\OT1/cmtt/m/n/10 /\OT1/cmr/m/it/10 len\OT1/cmtt/m/n/10 + \OT1 /cmr/m/n/10 is a short-hand for \OT1/cmr/m/it/10 ad- Underfull \hbox (badness 7486) in paragraph at lines 2621--2629 []\OT1/cmr/m/n/10 For ex-am-ple, \OT1/cmtt/m/n/10 [ 1.0.0.0/8, 2.0.0.0/8+, 3.0. 0.0/8-, 4.0.0.0/8$\OMS/cmsy/m/n/10 f$\OT1/cmtt/m/n/10 16,24$\OMS/cmsy/m/n/10 g$ \OT1/cmtt/m/n/10 ] \OT1/cmr/m/n/10 matches pre-fix Underfull \hbox (badness 10000) in paragraph at lines 2630--2634 \OT1/cmtt/m/n/10 192.168.0.0/16 le 24 \OT1/cmr/m/n/10 as \OT1/cmtt/m/n/10 192.1 68.0.0/16$\OMS/cmsy/m/n/10 f$\OT1/cmtt/m/n/10 16,24$\OMS/cmsy/m/n/10 g$ \OT1/cm r/m/n/10 and \OT1/cmtt/m/n/10 192.168.0.0/16 ge 24 \OT1/cmr/m/n/10 as [30] [31] [32] [33] LaTeX Warning: Hyper reference `opt-attribute' on page 34 undefined on input li ne 2961. LaTeX Warning: Hyper reference `routes' on page 34 undefined on input line 2971 . [34] LaTeX Warning: Hyper reference `krt-merge-paths' on page 35 undefined on input line 3040. LaTeX Warning: Hyper reference `rta-local-metric' on page 35 undefined on input line 3059. LaTeX Warning: Hyper reference `mpls-channel-label-policy' on page 35 undefined on input line 3088. LaTeX Warning: Hyper reference `mpls-channel-label-policy' on page 35 undefined on input line 3093. LaTeX Warning: Hyper reference `mpls-channel-label-policy' on page 35 undefined on input line 3098. [35] [36] Chapter 6. [37] LaTeX Warning: Hyper reference `ip-sadr-routes' on page 38 undefined on input l ine 3286. [38] LaTeX Warning: Hyper reference `proto-tx-class' on page 39 undefined on input l ine 3411. [39] LaTeX Warning: Hyper reference `babel-extended-next-hop' on page 40 undefined o n input line 3461. LaTeX Warning: Hyper reference `babel-next-hop-prefer' on page 40 undefined on input line 3468. LaTeX Warning: Hyper reference `babel-rtt-min' on page 40 undefined on input li ne 3478. LaTeX Warning: Hyper reference `babel-rtt-max' on page 40 undefined on input li ne 3481. LaTeX Warning: Hyper reference `proto-pass' on page 40 undefined on input line 3526. [40] [41] [42] LaTeX Warning: Hyper reference `proto-iface' on page 43 undefined on input line 3758. [43] LaTeX Warning: Hyper reference `proto-pass' on page 44 undefined on input line 3872. [44] [45] LaTeX Warning: Hyper reference `rta-local-metric' on page 46 undefined on input line 4017. [46] Overfull \hbox (91.37543pt too wide) in paragraph at lines 4165--4165 [] \OT1/cmtt/m/n/10 neighbor [ | range ] [onlink] [port ] [as ] [internal|external];[] Overfull \hbox (17.87607pt too wide) in paragraph at lines 4165--4165 [] \OT1/cmtt/m/n/10 algorithm ( hmac md5 | hmac sha1 | hmac sha224 | hmac sha256 |[] [47] [48] [49] LaTeX Warning: Hyper reference `bfd' on page 50 undefined on input line 4355. [50] LaTeX Warning: Hyper reference `bgp-password' on page 51 undefined on input lin e 4376. LaTeX Warning: Hyper reference `bgp-keys' on page 51 undefined on input line 43 80. LaTeX Warning: Hyper reference `type-bytestring' on page 51 undefined on input line 4420. [51] [52] LaTeX Warning: Hyper reference `bgp-graceful-restart' on page 53 undefined on i nput line 4647. LaTeX Warning: Hyper reference `bgp-graceful-restart-time' on page 53 undefined on input line 4648. [53] [54] [55] LaTeX Warning: Hyper reference `dsc-table-sorted' on page 56 undefined on input line 4887. [56] [57] LaTeX Warning: Hyper reference `bgp-gateway' on page 58 undefined on input line 5076. LaTeX Warning: Hyper reference `bgp-igp-table' on page 58 undefined on input li ne 5077. LaTeX Warning: Hyper reference `dsc-table-sorted' on page 58 undefined on input line 5121. [58] LaTeX Warning: Hyper reference `dsc-table-sorted' on page 59 undefined on input line 5174. LaTeX Warning: Hyper reference `bgp-base-table' on page 59 undefined on input l ine 5186. LaTeX Warning: Hyper reference `bgp-import-table' on page 59 undefined on input line 5191. [59] LaTeX Warning: Hyper reference `bgp-gateway' on page 60 undefined on input line 5274. LaTeX Warning: Hyper reference `bgp-graceful-restart' on page 60 undefined on i nput line 5284. LaTeX Warning: Hyper reference `bgp-long-lived-graceful-restart' on page 60 und efined on input line 5293. LaTeX Warning: Hyper reference `bgp-long-lived-stale-time' on page 60 undefined on input line 5302. LaTeX Warning: Hyper reference `bgp-min-long-lived-stale-time' on page 60 undef ined on input line 5310. LaTeX Warning: Hyper reference `bgp-max-long-lived-stale-time' on page 60 undef ined on input line 5318. LaTeX Warning: Hyper reference `cli-configure' on page 60 undefined on input li ne 5343. LaTeX Warning: Hyper reference `cli-reload' on page 60 undefined on input line 5344. [60] [61] [62] LaTeX Warning: Hyper reference `bgp-local-role' on page 63 undefined on input l ine 5587. [63] Overfull \hbox (17.87607pt too wide) in paragraph at lines 5670--5670 [] \OT1/cmtt/m/n/10 export filter { # We u se non-trivial export rules[] Overfull \hbox (17.87607pt too wide) in paragraph at lines 5670--5670 [] \OT1/cmtt/m/n/10 table mymulticasttable4; # Another IPv4 tab le, dedicated for multicast[] [64] Overfull \hbox (23.12602pt too wide) in paragraph at lines 5720--5720 [] \OT1/cmtt/m/n/10 table peers; # Import peer disco very objects from this table[] Overfull \hbox (28.37598pt too wide) in paragraph at lines 5720--5720 [] \OT1/cmtt/m/n/10 export all; # Allow all discove red peers to trigger sessions[] LaTeX Warning: Hyper reference `bgp-import-table' on page 65 undefined on input line 5740. [65] LaTeX Warning: Hyper reference `krt' on page 66 undefined on input line 5795. [66] Overfull \hbox (17.87607pt too wide) in paragraph at lines 5898--5898 []\OT1/cmtt/m/n/10 ip link add name $TUNNEL type vxlan id $VNI local $ROUTER_A DDR dstport 4789 nolearning[] Overfull \hbox (23.12602pt too wide) in paragraph at lines 5919--5919 []\OT1/cmtt/m/n/10 ip link add name $TUNNEL type vxlan local $ROUTER_ADDR dstp ort 4789 nolearning external[] LaTeX Warning: Hyper reference `proto-iface' on page 67 undefined on input line 5967. [67] LaTeX Warning: Hyper reference `ip-sadr-routes' on page 68 undefined on input l ine 6022. LaTeX Warning: Hyper reference `proto-iface' on page 68 undefined on input line 6048. LaTeX Warning: Hyper reference `rta-bgp-ext-community' on page 68 undefined on input line 6107. [68] LaTeX Warning: Hyper reference `bridge' on page 69 undefined on input line 6141 . [69] LaTeX Warning: Hyper reference `evpn-exam' on page 70 undefined on input line 6 265. [70] LaTeX Warning: Hyper reference `ip-sadr-routes' on page 71 undefined on input l ine 6381. LaTeX Warning: Hyper reference `mpls-routes' on page 71 undefined on input line 6381. [71] Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 []\OT1/cmtt/m/n/10 krt[]mtu\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]mtu\OT 1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]window\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 k rt[]lock[]window\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]rtt\OT1/cmr/m/n/10 , \O T1/cmtt/m/n/10 krt[]lock[]rtt\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]rttvar\OT1 /cmr/m/n/10 , Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 \OT1/cmtt/m/n/10 krt[]lock[]rttvar\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]ssthr esh\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]ssthresh\OT1/cmr/m/n/10 , \OT1 /cmtt/m/n/10 krt[]cwnd\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]cwnd\OT1/cm r/m/n/10 , \OT1/cmtt/m/n/10 krt[]advmss\OT1/cmr/m/n/10 , Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 \OT1/cmtt/m/n/10 krt[]lock[]advmss\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]reord ering\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]reordering\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]hoplimit\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]hop limit\OT1/cmr/m/n/10 , Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 \OT1/cmtt/m/n/10 krt[]quickack\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]qui ckack\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]congctl\OT1/cmr/m/n/10 , \OT1/cmtt /m/n/10 krt[]lock[]congctl\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]fastopen[]no[ ]cookie\OT1/cmr/m/n/10 , [72] LaTeX Warning: Hyper reference `rta-bgp-ext-community' on page 73 undefined on input line 6617. [73] [74] LaTeX Warning: Hyper reference `proto-mrtdump' on page 75 undefined on input li ne 6781. [75] [76] [77] Overfull \hbox (212.12437pt too wide) in paragraph at lines 7042--7042 [] \OT1/cmtt/m/n/10 algorithm ( keyed md5 | key ed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 );[] Overfull \hbox (212.12437pt too wide) in paragraph at lines 7042--7042 [] \OT1/cmtt/m/n/10 algorithm ( keyed md5 | key ed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 );[] [78] [79] LaTeX Warning: Hyper reference `proto-iface' on page 80 undefined on input line 7248. [80] [81] LaTeX Warning: Hyper reference `bfd' on page 82 undefined on input line 7464. [82] LaTeX Warning: Hyper reference `proto-tx-class' on page 83 undefined on input l ine 7485. LaTeX Warning: Hyper reference `proto-pass' on page 83 undefined on input line 7521. [83] [84] [85] [86] LaTeX Warning: Hyper reference `radv-trigger' on page 87 undefined on input lin e 7822. LaTeX Warning: Hyper reference `radv-propagate-routes' on page 87 undefined on input line 7823. LaTeX Warning: Hyper reference `radv-router-discovery' on page 87 undefined on input line 7824. LaTeX Warning: Hyper reference `proto-iface' on page 87 undefined on input line 7840. [87] LaTeX Warning: Hyper reference `radv-trigger' on page 88 undefined on input lin e 8014. [88] LaTeX Warning: Hyper reference `rta-ra-lifetime' on page 89 undefined on input line 8030. LaTeX Warning: Hyper reference `radv-trigger' on page 89 undefined on input lin e 8033. LaTeX Warning: Hyper reference `rta-ra-preference' on page 89 undefined on inpu t line 8042. [89] LaTeX Warning: Hyper reference `radv-trigger' on page 90 undefined on input lin e 8136. LaTeX Warning: Hyper reference `radv-trigger' on page 90 undefined on input lin e 8145. LaTeX Warning: Hyper reference `radv-iface-route-preference' on page 90 undefin ed on input line 8209. Underfull \hbox (badness 1354) in paragraph at lines 8206--8211 []\OT1/cmr/m/n/10 The pref-er-ence of the route. The value can be \OT1/cmr/m/it /10 RA[]PREF[]LOW\OT1/cmr/m/n/10 , \OT1/cmr/m/it/10 RA[]PREF[]MEDIUM \OT1/cmr/m /n/10 or LaTeX Warning: Hyper reference `radv-iface-route-lifetime' on page 90 undefined on input line 8217. [90] Overfull \hbox (33.62593pt too wide) in paragraph at lines 8283--8283 [] \OT1/cmtt/m/n/10 propagate routes yes; # Propagate the rou tes from the radv_routes table[] [91] [92] LaTeX Warning: Hyper reference `proto-iface' on page 93 undefined on input line 8406. [93] LaTeX Warning: Hyper reference `proto-pass' on page 94 undefined on input line 8552. LaTeX Warning: Hyper reference `proto-tx-class' on page 94 undefined on input l ine 8577. [94] LaTeX Warning: Hyper reference `proto-rpki-reload' on page 95 undefined on inpu t line 8690. [95] [96] [97] LaTeX Warning: Hyper reference `rta-igp-metric' on page 98 undefined on input l ine 9010. [98] LaTeX Warning: Hyper reference `type-prefix' on page 99 undefined on input line 9061. LaTeX Warning: Hyper reference `route-next-hop' on page 99 undefined on input l ine 9066. LaTeX Warning: Hyper reference `bfd' on page 99 undefined on input line 9121. [99] [100] [101] Overfull \hbox (59.8757pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 10.2.2.0/24 via 192.0.2.1 dev "eth0" onlink; # Route with both nexthop and iface[] Overfull \hbox (7.37616pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 bgp_community.add((65535, 65281)); # S et extended BGP attribute[] Overfull \hbox (7.37616pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 bgp_large_community.add((64512, 1, 1)); # S et extended BGP attribute[] Overfull \hbox (2.1262pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:10::/48 via 2001:db8:1::1; # R oute with global nexthop[] Overfull \hbox (23.12602pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:20::/48 via fe80::10%eth0; # R oute with link-local nexthop[] Overfull \hbox (70.37561pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:30::/48 via fe80::20%'eth1.60'; # I face with non-alphanumeric characters[] Overfull \hbox (7.37616pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:40::/48 via fe80::30 dev "eth1"; # A nother link-local nexthop[] [102] Overfull \hbox (17.87607pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route ::/0 via 2001:db8:1::1 bfd; # B FD-controlled default route[] [103] Chapter 7. [104] (obj/doc//bird.aux) LaTeX Warning: There were undefined references. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. Package rerunfilecheck Warning: File `bird.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. ) (see the transcript file for additional information) Output written on obj/doc//bird.pdf (104 pages, 496259 bytes). Transcript written on obj/doc//bird.log. TEXINPUTS=:/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex pdflatex -output-directory=obj/doc/ obj/doc/bird.tex This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./obj/doc/bird.tex LaTeX2e <2025-11-01> L3 programming layer <2026-03-20> (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2025/01/22 v1.4n Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty (/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty (/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty) (/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty (/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty))) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/generic/stringenc/stringenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty) (/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty (/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def (/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty))) (/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty) (/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex/birddoc.sty) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/qwertz.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/latin1.def)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)))) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/null.sty) (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) (obj/doc//bird.aux LaTeX Warning: Label `thread-min-time' multiply defined. LaTeX Warning: Label `proto-thread-group' multiply defined. LaTeX Warning: Label `rtable-export-settle-time' multiply defined. ) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx)) (obj/doc//bird.out) (obj/doc//bird.out) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) Underfull \hbox (badness 10000) in paragraph at lines 24--24 [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (obj/doc//bird.toc [2]) [3] Chapter 1. [4{/usr/share/texlive/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] [5] [6] Chapter 2. [7] [8] [9] [10] [11] [12] Chapter 3. Underfull \hbox (badness 10000) in paragraph at lines 848--854 [][]\OT1/cmtt/m/n/10 log "\OT1/cmr/m/it/10 file-name\OT1/cmtt/m/n/10 " [\OT1 /cmr/m/it/10 limit \OT1/cmtt/m/n/10 "\OT1/cmr/m/it/10 backup\OT1/cmtt/m/n/10 "] $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 fixed "\OT1/cmr/m/it/10 file-name\OT1/cm tt/m/n/10 " \OT1/cmr/m/it/10 size $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 syslog [name \OT1/cmr/m/it/10 name\OT1/cmtt/m/n/10 ] $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/ n/10 stderr $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 udp [13] [14] [15] [16] [17] [18] [19] Underfull \hbox (badness 10000) in paragraph at lines 1536--1541 [][]\OT1/cmtt/m/n/10 algorithm ( keyed md5 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/ n/10 keyed sha1 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 hmac sha1 $\OMS/cmsy/m/n/ 10 j$ \OT1/cmtt/m/n/10 hmac sha256 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 hmac s ha384 $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 hmac sha512 $\OMS/cmsy/m/n/10 j$ [20] [21] [22] [23] Chapter 4. [24] Underfull \hbox (badness 10000) in paragraph at lines 2001--2004 [][]\OT1/cmtt/m/n/10 show ospf lsadb [global $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/ m/n/10 area \OT1/cmr/m/it/10 id $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 link] [ty pe \OT1/cmr/m/it/10 num-ber\OT1/cmtt/m/n/10 ] [lsid \OT1/cmr/m/it/10 id\OT1/cmt t/m/n/10 ] [self $\OMS/cmsy/m/n/10 j$ \OT1/cmtt/m/n/10 router \OT1/cmr/m/it/10 id\OT1/cmtt/m/n/10 ] Underfull \hbox (badness 10000) in paragraph at lines 2022--2025 [][]\OT1/cmtt/m/n/10 show bfd sessions [\OT1/cmr/m/it/10 name\OT1/cmtt/m/n/1 0 ] [address (\OT1/cmr/m/it/10 IP$\OMS/cmsy/m/n/10 j$\OT1/cmr/m/it/10 prefix\OT 1/cmtt/m/n/10 )] [(interface$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 dev) "\OT1/cmr /m/it/10 name\OT1/cmtt/m/n/10 "] [ipv4$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 ipv6 ] Underfull \hbox (badness 10000) in paragraph at lines 2034--2037 [][]\OT1/cmtt/m/n/10 show route [[(for$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 i n)] \OT1/cmr/m/it/10 pre-fix$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 for \OT1/cmr/m /it/10 IP\OT1/cmtt/m/n/10 ] [table (\OT1/cmr/m/it/10 t$\OMS/cmsy/m/n/10 j$\OT1/ cmtt/m/n/10 all)] [(import$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 export) table \O T1/cmr/m/it/10 p\OT1/cmtt/m/n/10 .\OT1/cmr/m/it/10 c\OT1/cmtt/m/n/10 ] [filter [25] [26] Underfull \hbox (badness 10000) in paragraph at lines 2207--2214 [][]\OT1/cmtt/m/n/10 dump resources$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 sock ets$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 ao keys$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/ n/10 events$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 interfaces$\OMS/cmsy/m/n/10 j$\ OT1/cmtt/m/n/10 neighbors$\OMS/cmsy/m/n/10 j$\OT1/cmtt/m/n/10 attributes$\OMS/c msy/m/n/10 j$\OT1/cmtt/m/n/10 attribute [27] Chapter 5. [28] Underfull \hbox (badness 2165) in paragraph at lines 2425--2431 []\OT1/cmr/m/n/10 Bytestring lit-er-als are writ-ten as a se-quence of hex-adec -i-mal digit pairs, op-tion-ally colon- Underfull \hbox (badness 1852) in paragraph at lines 2425--2431 \OT1/cmr/m/n/10 separated. A bytestring spec-i-fied this way must be ei-ther at least 16 bytes (32 dig-its) [29] [30] Underfull \hbox (badness 5050) in paragraph at lines 2561--2568 []\OT1/cmr/m/n/10 For pair sets, ex-pres-sions like \OT1/cmtt/m/n/10 (123,*) \O T1/cmr/m/n/10 can be used to de-note ranges (in that case Underfull \hbox (badness 2393) in paragraph at lines 2612--2620 []\OT1/cmr/m/n/10 There are also two short-hands for pre-fix pat-terns: \OT1/cm r/m/it/10 ad-dress\OT1/cmtt/m/n/10 /\OT1/cmr/m/it/10 len\OT1/cmtt/m/n/10 + \OT1 /cmr/m/n/10 is a short-hand for \OT1/cmr/m/it/10 ad- Underfull \hbox (badness 7486) in paragraph at lines 2621--2629 []\OT1/cmr/m/n/10 For ex-am-ple, \OT1/cmtt/m/n/10 [ 1.0.0.0/8, 2.0.0.0/8+, 3.0. 0.0/8-, 4.0.0.0/8$\OMS/cmsy/m/n/10 f$\OT1/cmtt/m/n/10 16,24$\OMS/cmsy/m/n/10 g$ \OT1/cmtt/m/n/10 ] \OT1/cmr/m/n/10 matches pre-fix Underfull \hbox (badness 10000) in paragraph at lines 2630--2634 \OT1/cmtt/m/n/10 192.168.0.0/16 le 24 \OT1/cmr/m/n/10 as \OT1/cmtt/m/n/10 192.1 68.0.0/16$\OMS/cmsy/m/n/10 f$\OT1/cmtt/m/n/10 16,24$\OMS/cmsy/m/n/10 g$ \OT1/cm r/m/n/10 and \OT1/cmtt/m/n/10 192.168.0.0/16 ge 24 \OT1/cmr/m/n/10 as [31] [32] [33] [34] [35] [36] [37] Chapter 6. [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] Overfull \hbox (91.37543pt too wide) in paragraph at lines 4165--4165 [] \OT1/cmtt/m/n/10 neighbor [ | range ] [onlink] [port ] [as ] [internal|external];[] Overfull \hbox (17.87607pt too wide) in paragraph at lines 4165--4165 [] \OT1/cmtt/m/n/10 algorithm ( hmac md5 | hmac sha1 | hmac sha224 | hmac sha256 |[] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] Overfull \hbox (17.87607pt too wide) in paragraph at lines 5670--5670 [] \OT1/cmtt/m/n/10 export filter { # We u se non-trivial export rules[] Overfull \hbox (17.87607pt too wide) in paragraph at lines 5670--5670 [] \OT1/cmtt/m/n/10 table mymulticasttable4; # Another IPv4 tab le, dedicated for multicast[] [65] Overfull \hbox (23.12602pt too wide) in paragraph at lines 5720--5720 [] \OT1/cmtt/m/n/10 table peers; # Import peer disco very objects from this table[] Overfull \hbox (28.37598pt too wide) in paragraph at lines 5720--5720 [] \OT1/cmtt/m/n/10 export all; # Allow all discove red peers to trigger sessions[] [66] [67] Overfull \hbox (17.87607pt too wide) in paragraph at lines 5898--5898 []\OT1/cmtt/m/n/10 ip link add name $TUNNEL type vxlan id $VNI local $ROUTER_A DDR dstport 4789 nolearning[] Overfull \hbox (23.12602pt too wide) in paragraph at lines 5919--5919 []\OT1/cmtt/m/n/10 ip link add name $TUNNEL type vxlan local $ROUTER_ADDR dstp ort 4789 nolearning external[] [68] [69] [70] [71] [72] Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 []\OT1/cmtt/m/n/10 krt[]mtu\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]mtu\OT 1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]window\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 k rt[]lock[]window\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]rtt\OT1/cmr/m/n/10 , \O T1/cmtt/m/n/10 krt[]lock[]rtt\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]rttvar\OT1 /cmr/m/n/10 , Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 \OT1/cmtt/m/n/10 krt[]lock[]rttvar\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]ssthr esh\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]ssthresh\OT1/cmr/m/n/10 , \OT1 /cmtt/m/n/10 krt[]cwnd\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]cwnd\OT1/cm r/m/n/10 , \OT1/cmtt/m/n/10 krt[]advmss\OT1/cmr/m/n/10 , Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 \OT1/cmtt/m/n/10 krt[]lock[]advmss\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]reord ering\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]reordering\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]hoplimit\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]hop limit\OT1/cmr/m/n/10 , Underfull \hbox (badness 10000) in paragraph at lines 6529--6538 \OT1/cmtt/m/n/10 krt[]quickack\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]lock[]qui ckack\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]congctl\OT1/cmr/m/n/10 , \OT1/cmtt /m/n/10 krt[]lock[]congctl\OT1/cmr/m/n/10 , \OT1/cmtt/m/n/10 krt[]fastopen[]no[ ]cookie\OT1/cmr/m/n/10 , [73] [74] [75] [76] [77] [78] Overfull \hbox (212.12437pt too wide) in paragraph at lines 7042--7042 [] \OT1/cmtt/m/n/10 algorithm ( keyed md5 | key ed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 );[] Overfull \hbox (212.12437pt too wide) in paragraph at lines 7042--7042 [] \OT1/cmtt/m/n/10 algorithm ( keyed md5 | key ed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 );[] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] Underfull \hbox (badness 1354) in paragraph at lines 8206--8211 []\OT1/cmr/m/n/10 The pref-er-ence of the route. The value can be \OT1/cmr/m/it /10 RA[]PREF[]LOW\OT1/cmr/m/n/10 , \OT1/cmr/m/it/10 RA[]PREF[]MEDIUM \OT1/cmr/m /n/10 or [91] Overfull \hbox (33.62593pt too wide) in paragraph at lines 8283--8283 [] \OT1/cmtt/m/n/10 propagate routes yes; # Propagate the rou tes from the radv_routes table[] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] Overfull \hbox (59.8757pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 10.2.2.0/24 via 192.0.2.1 dev "eth0" onlink; # Route with both nexthop and iface[] Overfull \hbox (7.37616pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 bgp_community.add((65535, 65281)); # S et extended BGP attribute[] Overfull \hbox (7.37616pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 bgp_large_community.add((64512, 1, 1)); # S et extended BGP attribute[] Overfull \hbox (2.1262pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:10::/48 via 2001:db8:1::1; # R oute with global nexthop[] Overfull \hbox (23.12602pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:20::/48 via fe80::10%eth0; # R oute with link-local nexthop[] Overfull \hbox (70.37561pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:30::/48 via fe80::20%'eth1.60'; # I face with non-alphanumeric characters[] Overfull \hbox (7.37616pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route 2001:db8:40::/48 via fe80::30 dev "eth1"; # A nother link-local nexthop[] [103] Overfull \hbox (17.87607pt too wide) in paragraph at lines 9437--9437 [] \OT1/cmtt/m/n/10 route ::/0 via 2001:db8:1::1 bfd; # B FD-controlled default route[] [104] Chapter 7. [105] (obj/doc//bird.aux) LaTeX Warning: There were multiply-defined labels. ) (see the transcript file for additional information) Output written on obj/doc//bird.pdf (105 pages, 510223 bytes). Transcript written on obj/doc//bird.log. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from conf/confbase.Y:21: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./nest/protocol.h:224: ./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/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:25: 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:109: ./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/bmp/config.Y:11: In file included from ./proto/bmp/bmp.h:112: ./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/bmp/config.Y:11: In file included from ./proto/bmp/bmp.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) | ^ | == conf/confbase.Y:371:21: warning: allocation of insufficient size '16' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 371 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_vpn4)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ conf/confbase.Y:383:21: warning: allocation of insufficient size '16' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 383 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_roa4)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ conf/confbase.Y:399:21: warning: allocation of insufficient size '12' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 399 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_eth)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ conf/confbase.Y:405:21: warning: allocation of insufficient size '12' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 405 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_eth)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ conf/confbase.Y:411:21: warning: allocation of insufficient size '8' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 411 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_mpls)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ conf/confbase.Y:417:21: warning: allocation of insufficient size '8' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 417 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_aspa)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ nest/config.Y:497: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] 497 | { this_ipn->pattern = (yyvsp[0].t); } | ^ ~~~~~~~~~~~~ nest/config.Y:503:26: 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[0].v).val.s; | ^ ~~~~~~~~~~~~~~~~~~ nest/config.Y:511:40: 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] 511 | { this_ipn->pattern = (yyvsp[-1].t); this_ipn->prefix = (yyvsp[0].net); } | ^ ~~~~~~~~~~~~~ nest/config.Y:873:23: warning: allocation of insufficient size '16' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 873 | (yyval.net_ptr) = cfg_alloc(sizeof(net_addr_vpn4)); | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ proto/aggregator/config.Y:76:38: 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] 76 | f_predefined_variable(new_config, "routes", T_ROUTES_BLOCK); | ^~~~~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ proto/aggregator/config.Y:92:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 92 | if ((yyval.xp).begin = (yyvsp[0].xp).begin) | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ proto/aggregator/config.Y:92:26: note: place parentheses around the assignment to silence this warning 92 | if ((yyval.xp).begin = (yyvsp[0].xp).begin) | ^ | ( ) proto/aggregator/config.Y:92:26: note: use '==' to turn this assignment into an equality comparison 92 | if ((yyval.xp).begin = (yyvsp[0].xp).begin) | ^ | == proto/aggregator/config.Y:97:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 97 | if ((yyval.xp).end = (yyvsp[0].xp).end) | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ proto/aggregator/config.Y:97:24: note: place parentheses around the assignment to silence this warning 97 | if ((yyval.xp).end = (yyvsp[0].xp).end) | ^ | ( ) proto/aggregator/config.Y:97:24: note: use '==' to turn this assignment into an equality comparison 97 | if ((yyval.xp).end = (yyvsp[0].xp).end) | ^ | == proto/aggregator/config.Y:142:46: warning: passing 'char[12]' 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] 142 | new_config, cf_get_symbol(new_config, varname), | ^~~~~~~ ./conf/conf.h:273:63: note: passing argument to parameter 'c' here 273 | struct symbol *cf_get_symbol(struct config *conf, const byte *c); | ^ 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:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | 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:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | 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:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:194:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 194 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_interfaces(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:194:3: note: place parentheses around the assignment to silence this warning 194 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_interfaces(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:194:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:197:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 197 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_neighbors(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:197:3: note: place parentheses around the assignment to silence this warning 197 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_neighbors(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:197:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:200:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 200 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_entries(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:200:3: note: place parentheses around the assignment to silence this warning 200 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_entries(p); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:200:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:203:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 203 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_routes(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/babel/config.Y:203:3: note: place parentheses around the assignment to silence this warning 203 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_babel, p) babel_show_routes(p); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/babel/config.Y:203:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/bgp/config.Y:312: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] 312 | this_ao_key->key.key = (yyvsp[-1].v).val.bs->data; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:512:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 512 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_ospf, p) ospf_sh(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:512:3: note: place parentheses around the assignment to silence this warning 512 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_ospf, p) ospf_sh(p); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/ospf/config.Y:512:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/ospf/config.Y:515:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 515 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_neigh(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:515:3: note: place parentheses around the assignment to silence this warning 515 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_neigh(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/ospf/config.Y:515:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/ospf/config.Y:518:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 518 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_iface(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/ospf/config.Y:518:3: note: place parentheses around the assignment to silence this warning 518 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_ospf, p) ospf_sh_iface(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/ospf/config.Y:518:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/rip/config.Y:198:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 198 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_interfaces(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/rip/config.Y:198:3: note: place parentheses around the assignment to silence this warning 198 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_interfaces(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/rip/config.Y:198:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/rip/config.Y:201:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 201 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_neighbors(p, (yyvsp[-1].t)); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/rip/config.Y:201:3: note: place parentheses around the assignment to silence this warning 201 | { PROTO_WALK_CMD((yyvsp[-2].s), &proto_rip, p) rip_show_neighbors(p, (yyvsp[-1].t)); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/rip/config.Y:201:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/static/config.Y:207:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 207 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_static, p) static_show(p); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/static/config.Y:207:3: note: place parentheses around the assignment to silence this warning 207 | { PROTO_WALK_CMD((yyvsp[-1].s), &proto_static, p) static_show(p); } | ^ | ( ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ proto/static/config.Y:207:3: note: use '==' to turn this assignment into an equality comparison ./nest/protocol.h:288:34: note: expanded from macro 'PROTO_WALK_CMD' 288 | for (struct proto *p = NULL; p = proto_iterate_named(sym, pr, p); ) \ | ^ 58 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 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; | ^ ~~~~~~~~~~~ 14 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 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, ...); | ^ 22 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/evpn.o -c lib/evpn.c In file included from lib/evpn.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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:247:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 247 | else | ^ lib/event.c:316:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 316 | while (e = atomic_load_explicit(ep, memory_order_acquire)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/event.c:316:12: note: place parentheses around the assignment to silence this warning 316 | while (e = atomic_load_explicit(ep, memory_order_acquire)) | ^ | ( ) lib/event.c:316:12: note: use '==' to turn this assignment into an equality comparison 316 | while (e = atomic_load_explicit(ep, memory_order_acquire)) | ^ | == 5 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/lists.o -c lib/lists.c clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:779:22: warning: address of array 'f->data' will always evaluate to 'true' [-Wpointer-bool-conversion] 779 | ASSERT_DIE(f && f->data); | ~~ ~~~^~~~ ./lib/birdlib.h:258:34: note: expanded from macro 'ASSERT_DIE' 258 | #define ASSERT_DIE(x) do { if (!(x)) bug("Assertion '%s' failed at %s:%d", #x, __FILE__, __LINE__); } while(0) | ^ lib/flowspec.c:796:22: warning: address of array 'f->data' will always evaluate to 'true' [-Wpointer-bool-conversion] 796 | ASSERT_DIE(f && f->data); | ~~ ~~~^~~~ ./lib/birdlib.h:258:34: note: expanded from macro 'ASSERT_DIE' 258 | #define ASSERT_DIE(x) do { if (!(x)) bug("Assertion '%s' failed at %s:%d", #x, __FILE__, __LINE__); } while(0) | ^ lib/flowspec.c:1494: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] 1494 | .start = buf, | ^~~ lib/flowspec.c:1495: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] 1495 | .pos = buf, | ^~~ lib/flowspec.c:1496: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] 1496 | .end = buf + blen, | ^~~~~~~~~~ lib/flowspec.c:1541: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] 1541 | 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:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ lib/flowspec.c:1541: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] 1541 | 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:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ 10 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/islab.o -c lib/islab.c In file included from lib/islab.c:80: 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/lockfree.c:269:32: warning: '&&' within '||' [-Wlogical-op-parentheses] 269 | if ((pos + 1 == end) || last && (last_block != block)) | ~~ ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ lib/lockfree.c:269:32: note: place parentheses around the '&&' expression to silence this warning 269 | if ((pos + 1 == end) || last && (last_block != block)) | ^ | ( ) 5 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:257:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 257 | while (c = m->current->next) | ~~^~~~~~~~~~~~~~~~~~ lib/mempool.c:257:12: note: place parentheses around the assignment to silence this warning 257 | while (c = m->current->next) | ^ | ( ) lib/mempool.c:257:12: note: use '==' to turn this assignment into an equality comparison 257 | while (c = m->current->next) | ^ | == 2 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/mslab.o -c lib/mslab.c In file included from lib/mslab.c:150: 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/mslab.c:152: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/mslab.c:154: In file included from ./sysdep/unix/io-loop.h:87: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/mslab.c:154: In file included from ./sysdep/unix/io-loop.h:126: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/mslab.c:563:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 563 | if (h = atomic_load_explicit(&ti->head, memory_order_acquire)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mslab.c:563:9: note: place parentheses around the assignment to silence this warning 563 | if (h = atomic_load_explicit(&ti->head, memory_order_acquire)) | ^ | ( ) lib/mslab.c:563:9: note: use '==' to turn this assignment into an equality comparison 563 | if (h = atomic_load_explicit(&ti->head, memory_order_acquire)) | ^ | == lib/mslab.c:1178:8: warning: variable 'pti' set but not used [-Wunused-but-set-variable] 1178 | uint pti = 0; | ^ 6 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:742:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 742 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:742:17: note: place parentheses around the assignment to silence this warning 742 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:742:17: note: use '==' to turn this assignment into an equality comparison 742 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:898:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 898 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:898:17: note: place parentheses around the assignment to silence this warning 898 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:898:17: note: use '==' to turn this assignment into an equality comparison 898 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:936:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 936 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:936:17: note: place parentheses around the assignment to silence this warning 936 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:936:17: note: use '==' to turn this assignment into an equality comparison 936 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:983:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 983 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:983:17: note: place parentheses around the assignment to silence this warning 983 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:983:17: note: use '==' to turn this assignment into an equality comparison 983 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:984:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 984 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:984:17: note: place parentheses around the assignment to silence this warning 984 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:984:17: note: use '==' to turn this assignment into an equality comparison 984 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:996:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 996 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:996:17: note: place parentheses around the assignment to silence this warning 996 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:996:17: note: use '==' to turn this assignment into an equality comparison 996 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:997:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 997 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:997:17: note: place parentheses around the assignment to silence this warning 997 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:997:17: note: use '==' to turn this assignment into an equality comparison 997 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:998:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 998 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:998:17: note: place parentheses around the assignment to silence this warning 998 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:998:17: note: use '==' to turn this assignment into an equality comparison 998 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:999:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 999 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:999:17: note: place parentheses around the assignment to silence this warning 999 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:999:17: note: use '==' to turn this assignment into an equality comparison 999 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1000:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1000 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1000:17: note: place parentheses around the assignment to silence this warning 1000 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1000:17: note: use '==' to turn this assignment into an equality comparison 1000 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1003:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1003 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1003:17: note: place parentheses around the assignment to silence this warning 1003 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1003:17: note: use '==' to turn this assignment into an equality comparison 1003 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1007:21: warning: allocation of insufficient size '20' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 1007 | net_addr *src = falloc(sizeof(net_addr_ip6)); | ^ filter/decl.m4:609:22: note: expanded from macro 'falloc' 609 | #define falloc(size) cfg_alloc(size) | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ filter/f-inst.c:1039:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1039 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1039:17: note: place parentheses around the assignment to silence this warning 1039 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1039:17: note: use '==' to turn this assignment into an equality comparison 1039 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1043:21: warning: allocation of insufficient size '20' for type 'net_addr' (aka 'struct net_addr') with size '24' [-Walloc-size] 1043 | net_addr *dst = falloc(sizeof(net_addr_ip6)); | ^ filter/decl.m4:609:22: note: expanded from macro 'falloc' 609 | #define falloc(size) cfg_alloc(size) | ^ ./conf/conf.h:157:25: note: expanded from macro 'cfg_alloc' 157 | #define cfg_alloc(size) lp_alloc(cfg_mem, size) | ^ 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:1085:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1085 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1085:17: note: place parentheses around the assignment to silence this warning 1085 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1085:17: note: use '==' to turn this assignment into an equality comparison 1085 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1112:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1112 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1112:17: note: place parentheses around the assignment to silence this warning 1112 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1112:17: note: use '==' to turn this assignment into an equality comparison 1112 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1122:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1122 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1122:17: note: place parentheses around the assignment to silence this warning 1122 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1122:17: note: use '==' to turn this assignment into an equality comparison 1122 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1130:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1130 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1130:17: note: place parentheses around the assignment to silence this warning 1130 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1130:17: note: use '==' to turn this assignment into an equality comparison 1130 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1142:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1142 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1142:17: note: place parentheses around the assignment to silence this warning 1142 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1142:17: note: use '==' to turn this assignment into an equality comparison 1142 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1151:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1151 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1151:17: note: place parentheses around the assignment to silence this warning 1151 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1151:17: note: use '==' to turn this assignment into an equality comparison 1151 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1160:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1160 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1160:17: note: place parentheses around the assignment to silence this warning 1160 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1160:17: note: use '==' to turn this assignment into an equality comparison 1160 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1172:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1172 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1172:17: note: place parentheses around the assignment to silence this warning 1172 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1172:17: note: use '==' to turn this assignment into an equality comparison 1172 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1202:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1202 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1202:17: note: place parentheses around the assignment to silence this warning 1202 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1202:17: note: use '==' to turn this assignment into an equality comparison 1202 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1224:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1224 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1224:17: note: place parentheses around the assignment to silence this warning 1224 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1224:17: note: use '==' to turn this assignment into an equality comparison 1224 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1227:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1227 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1227:17: note: place parentheses around the assignment to silence this warning 1227 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1227:17: note: use '==' to turn this assignment into an equality comparison 1227 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1230:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1230 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1230:17: note: place parentheses around the assignment to silence this warning 1230 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1230:17: note: use '==' to turn this assignment into an equality comparison 1230 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1233:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1233 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1233:17: note: place parentheses around the assignment to silence this warning 1233 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1233:17: note: use '==' to turn this assignment into an equality comparison 1233 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1236:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1236 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1236:17: note: place parentheses around the assignment to silence this warning 1236 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1236:17: note: use '==' to turn this assignment into an equality comparison 1236 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1239:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1239 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1239:17: note: place parentheses around the assignment to silence this warning 1239 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1239:17: note: use '==' to turn this assignment into an equality comparison 1239 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1242:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1242 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1242:17: note: place parentheses around the assignment to silence this warning 1242 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1242:17: note: use '==' to turn this assignment into an equality comparison 1242 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1245:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1245 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1245:17: note: place parentheses around the assignment to silence this warning 1245 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1245:17: note: use '==' to turn this assignment into an equality comparison 1245 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1248:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1248 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1248:17: note: place parentheses around the assignment to silence this warning 1248 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1248:17: note: use '==' to turn this assignment into an equality comparison 1248 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1251:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1251 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1251:17: note: place parentheses around the assignment to silence this warning 1251 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1251:17: note: use '==' to turn this assignment into an equality comparison 1251 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1254:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1254 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1254:17: note: place parentheses around the assignment to silence this warning 1254 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1254:17: note: use '==' to turn this assignment into an equality comparison 1254 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1257:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1257 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1257:17: note: place parentheses around the assignment to silence this warning 1257 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1257:17: note: use '==' to turn this assignment into an equality comparison 1257 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1260:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1260 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1260:17: note: place parentheses around the assignment to silence this warning 1260 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1260:17: note: use '==' to turn this assignment into an equality comparison 1260 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1263:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1263 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1263:17: note: place parentheses around the assignment to silence this warning 1263 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1263:17: note: use '==' to turn this assignment into an equality comparison 1263 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1268:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1268 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1268:17: note: place parentheses around the assignment to silence this warning 1268 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1268:17: note: use '==' to turn this assignment into an equality comparison 1268 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1353:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1353 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1353:17: note: place parentheses around the assignment to silence this warning 1353 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1353:17: note: use '==' to turn this assignment into an equality comparison 1353 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1357:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1357 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1357:17: note: place parentheses around the assignment to silence this warning 1357 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1357:17: note: use '==' to turn this assignment into an equality comparison 1357 | } while (child1 = child1->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:1410:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1410 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1410:17: note: place parentheses around the assignment to silence this warning 1410 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1410:17: note: use '==' to turn this assignment into an equality comparison 1410 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1411:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1411 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1411:17: note: place parentheses around the assignment to silence this warning 1411 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1411:17: note: use '==' to turn this assignment into an equality comparison 1411 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1418:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1418 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1418:17: note: place parentheses around the assignment to silence this warning 1418 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1418:17: note: use '==' to turn this assignment into an equality comparison 1418 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1419:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1419 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1419:17: note: place parentheses around the assignment to silence this warning 1419 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1419:17: note: use '==' to turn this assignment into an equality comparison 1419 | } 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:1434:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1434 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1434:17: note: place parentheses around the assignment to silence this warning 1434 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1434:17: note: use '==' to turn this assignment into an equality comparison 1434 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1435:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1435 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1435:17: note: place parentheses around the assignment to silence this warning 1435 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1435:17: note: use '==' to turn this assignment into an equality comparison 1435 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1441:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1441 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1441:17: note: place parentheses around the assignment to silence this warning 1441 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1441:17: note: use '==' to turn this assignment into an equality comparison 1441 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1442:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1442 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1442:17: note: place parentheses around the assignment to silence this warning 1442 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1442:17: note: use '==' to turn this assignment into an equality comparison 1442 | } 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:1469:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1469 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1469:17: note: place parentheses around the assignment to silence this warning 1469 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1469:17: note: use '==' to turn this assignment into an equality comparison 1469 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1470:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1470 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1470:17: note: place parentheses around the assignment to silence this warning 1470 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1470:17: note: use '==' to turn this assignment into an equality comparison 1470 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1476:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1476 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1476:17: note: place parentheses around the assignment to silence this warning 1476 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1476:17: note: use '==' to turn this assignment into an equality comparison 1476 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1477:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1477 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1477:17: note: place parentheses around the assignment to silence this warning 1477 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1477:17: note: use '==' to turn this assignment into an equality comparison 1477 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1483:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1483 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1483:17: note: place parentheses around the assignment to silence this warning 1483 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1483:17: note: use '==' to turn this assignment into an equality comparison 1483 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1484:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1484 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1484:17: note: place parentheses around the assignment to silence this warning 1484 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1484:17: note: use '==' to turn this assignment into an equality comparison 1484 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1490:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1490 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1490:17: note: place parentheses around the assignment to silence this warning 1490 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1490:17: note: use '==' to turn this assignment into an equality comparison 1490 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1491:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1491 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1491:17: note: place parentheses around the assignment to silence this warning 1491 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1491:17: note: use '==' to turn this assignment into an equality comparison 1491 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1497:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1497 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1497:17: note: place parentheses around the assignment to silence this warning 1497 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1497:17: note: use '==' to turn this assignment into an equality comparison 1497 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1498:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1498 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1498:17: note: place parentheses around the assignment to silence this warning 1498 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1498:17: note: use '==' to turn this assignment into an equality comparison 1498 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1504:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1504 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1504:17: note: place parentheses around the assignment to silence this warning 1504 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1504:17: note: use '==' to turn this assignment into an equality comparison 1504 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1505:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1505 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1505:17: note: place parentheses around the assignment to silence this warning 1505 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1505:17: note: use '==' to turn this assignment into an equality comparison 1505 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1511:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1511 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1511:17: note: place parentheses around the assignment to silence this warning 1511 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1511:17: note: use '==' to turn this assignment into an equality comparison 1511 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1512:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1512 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1512:17: note: place parentheses around the assignment to silence this warning 1512 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1512:17: note: use '==' to turn this assignment into an equality comparison 1512 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1523:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1523 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1523:17: note: place parentheses around the assignment to silence this warning 1523 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1523:17: note: use '==' to turn this assignment into an equality comparison 1523 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1524:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1524 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1524:17: note: place parentheses around the assignment to silence this warning 1524 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1524:17: note: use '==' to turn this assignment into an equality comparison 1524 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1530:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1530 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1530:17: note: place parentheses around the assignment to silence this warning 1530 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1530:17: note: use '==' to turn this assignment into an equality comparison 1530 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1531:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1531 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1531:17: note: place parentheses around the assignment to silence this warning 1531 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1531:17: note: use '==' to turn this assignment into an equality comparison 1531 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1537:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1537 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1537:17: note: place parentheses around the assignment to silence this warning 1537 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1537:17: note: use '==' to turn this assignment into an equality comparison 1537 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1538:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1538 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1538:17: note: place parentheses around the assignment to silence this warning 1538 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1538:17: note: use '==' to turn this assignment into an equality comparison 1538 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1551:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1551 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1551:17: note: place parentheses around the assignment to silence this warning 1551 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1551:17: note: use '==' to turn this assignment into an equality comparison 1551 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1552:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1552 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1552:17: note: place parentheses around the assignment to silence this warning 1552 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1552:17: note: use '==' to turn this assignment into an equality comparison 1552 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1558:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1558 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1558:17: note: place parentheses around the assignment to silence this warning 1558 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1558:17: note: use '==' to turn this assignment into an equality comparison 1558 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1559:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1559 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1559:17: note: place parentheses around the assignment to silence this warning 1559 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1559:17: note: use '==' to turn this assignment into an equality comparison 1559 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1565:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1565 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1565:17: note: place parentheses around the assignment to silence this warning 1565 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1565:17: note: use '==' to turn this assignment into an equality comparison 1565 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1566:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1566 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1566:17: note: place parentheses around the assignment to silence this warning 1566 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1566:17: note: use '==' to turn this assignment into an equality comparison 1566 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1576:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1576 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1576:17: note: place parentheses around the assignment to silence this warning 1576 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1576:17: note: use '==' to turn this assignment into an equality comparison 1576 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1577:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1577 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1577:17: note: place parentheses around the assignment to silence this warning 1577 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1577:17: note: use '==' to turn this assignment into an equality comparison 1577 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1583:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1583 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1583:17: note: place parentheses around the assignment to silence this warning 1583 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1583:17: note: use '==' to turn this assignment into an equality comparison 1583 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1584:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1584 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1584:17: note: place parentheses around the assignment to silence this warning 1584 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1584:17: note: use '==' to turn this assignment into an equality comparison 1584 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1590:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1590 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1590:17: note: place parentheses around the assignment to silence this warning 1590 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1590:17: note: use '==' to turn this assignment into an equality comparison 1590 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1591:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1591 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1591:17: note: place parentheses around the assignment to silence this warning 1591 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1591:17: note: use '==' to turn this assignment into an equality comparison 1591 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1601:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1601 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1601:17: note: place parentheses around the assignment to silence this warning 1601 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1601:17: note: use '==' to turn this assignment into an equality comparison 1601 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1602:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1602 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1602:17: note: place parentheses around the assignment to silence this warning 1602 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1602:17: note: use '==' to turn this assignment into an equality comparison 1602 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1608:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1608 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1608:17: note: place parentheses around the assignment to silence this warning 1608 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1608:17: note: use '==' to turn this assignment into an equality comparison 1608 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1609:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1609 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1609:17: note: place parentheses around the assignment to silence this warning 1609 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1609:17: note: use '==' to turn this assignment into an equality comparison 1609 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1615:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1615 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1615:17: note: place parentheses around the assignment to silence this warning 1615 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1615:17: note: use '==' to turn this assignment into an equality comparison 1615 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1616:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1616 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1616:17: note: place parentheses around the assignment to silence this warning 1616 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1616:17: note: use '==' to turn this assignment into an equality comparison 1616 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1626:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1626 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1626:17: note: place parentheses around the assignment to silence this warning 1626 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1626:17: note: use '==' to turn this assignment into an equality comparison 1626 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1627:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1627 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1627:17: note: place parentheses around the assignment to silence this warning 1627 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1627:17: note: use '==' to turn this assignment into an equality comparison 1627 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1637:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1637 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1637:17: note: place parentheses around the assignment to silence this warning 1637 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1637:17: note: use '==' to turn this assignment into an equality comparison 1637 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1638:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1638 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1638:17: note: place parentheses around the assignment to silence this warning 1638 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1638:17: note: use '==' to turn this assignment into an equality comparison 1638 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1644:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1644 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1644:17: note: place parentheses around the assignment to silence this warning 1644 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1644:17: note: use '==' to turn this assignment into an equality comparison 1644 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1645:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1645 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1645:17: note: place parentheses around the assignment to silence this warning 1645 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1645:17: note: use '==' to turn this assignment into an equality comparison 1645 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1655:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1655 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1655:17: note: place parentheses around the assignment to silence this warning 1655 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1655:17: note: use '==' to turn this assignment into an equality comparison 1655 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1656:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1656 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1656:17: note: place parentheses around the assignment to silence this warning 1656 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1656:17: note: use '==' to turn this assignment into an equality comparison 1656 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1662:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1662 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1662:17: note: place parentheses around the assignment to silence this warning 1662 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1662:17: note: use '==' to turn this assignment into an equality comparison 1662 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1663:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1663 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1663:17: note: place parentheses around the assignment to silence this warning 1663 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1663:17: note: use '==' to turn this assignment into an equality comparison 1663 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1673:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1673 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1673:17: note: place parentheses around the assignment to silence this warning 1673 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1673:17: note: use '==' to turn this assignment into an equality comparison 1673 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1674:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1674 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1674:17: note: place parentheses around the assignment to silence this warning 1674 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1674:17: note: use '==' to turn this assignment into an equality comparison 1674 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1680:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1680 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1680:17: note: place parentheses around the assignment to silence this warning 1680 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1680:17: note: use '==' to turn this assignment into an equality comparison 1680 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1681:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1681 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1681:17: note: place parentheses around the assignment to silence this warning 1681 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1681:17: note: use '==' to turn this assignment into an equality comparison 1681 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1692:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1692 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1692:17: note: place parentheses around the assignment to silence this warning 1692 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1692:17: note: use '==' to turn this assignment into an equality comparison 1692 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1693:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1693 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1693:17: note: place parentheses around the assignment to silence this warning 1693 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1693:17: note: use '==' to turn this assignment into an equality comparison 1693 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1714:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1714 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1714:17: note: place parentheses around the assignment to silence this warning 1714 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1714:17: note: use '==' to turn this assignment into an equality comparison 1714 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1715:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1715 | } while (child2 = child2->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1715:17: note: place parentheses around the assignment to silence this warning 1715 | } while (child2 = child2->next); | ^ | ( ) filter/f-inst.c:1715:17: note: use '==' to turn this assignment into an equality comparison 1715 | } while (child2 = child2->next); | ^ | == filter/f-inst.c:1729:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1729 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1729:17: note: place parentheses around the assignment to silence this warning 1729 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1729:17: note: use '==' to turn this assignment into an equality comparison 1729 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1744:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1744 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1744:17: note: place parentheses around the assignment to silence this warning 1744 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1744:17: note: use '==' to turn this assignment into an equality comparison 1744 | } while (child1 = child1->next); | ^ | == filter/f-inst.c:1750:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1750 | } while (child1 = child1->next); | ~~~~~~~^~~~~~~~~~~~~~ filter/f-inst.c:1750:17: note: place parentheses around the assignment to silence this warning 1750 | } while (child1 = child1->next); | ^ | ( ) filter/f-inst.c:1750:17: note: use '==' to turn this assignment into an equality comparison 1750 | } 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:997: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] 997 | 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:998: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] 998 | 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:999: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] 999 | 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:1000: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] 1000 | 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:1002: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] 1002 | 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:1038: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] 1038 | 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:1075: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] 1075 | 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:1085: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] 1085 | 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:1112: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] 1112 | 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:1122: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] 1122 | 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:1130: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] 1130 | 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:1142: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] 1142 | f_register_method(T_NET, "mac", 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:1151:28: 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] 1151 | f_register_method(T_NET, "vlan_id", 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:1160:28: 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] 1160 | f_register_method(T_NET, "evpn_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:1172:28: warning: passing 'char[9]' 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] 1172 | f_register_method(T_NET, "evpn_tag", 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:1202:28: warning: passing 'char[9]' 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] 1202 | f_register_method(T_NET, "evpn_esi", 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:1224:28: 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] 1224 | f_register_method(T_NET, "router_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:1227: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] 1227 | 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:1230: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] 1230 | 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:1233: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] 1233 | 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:1236: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] 1236 | 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:1239: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] 1239 | 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:1242: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] 1242 | 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:1245: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] 1245 | 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:1248: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] 1248 | 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:1251: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] 1251 | 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:1254: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] 1254 | 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:1257: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] 1257 | 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:1260: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] 1260 | 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:1263: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] 1263 | 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:1265: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] 1265 | 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:1409: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] 1409 | 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:1417: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] 1417 | 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: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_STRING, "append", 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:1433:35: 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] 1433 | f_register_method(T_BYTESTRING, "append", 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:1440: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] 1440 | 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:1454: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] 1454 | 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:1461: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] 1461 | 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:1468: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] 1468 | 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:1475: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] 1475 | 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:1482: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] 1482 | 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:1489: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] 1489 | 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:1496: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] 1496 | 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:1503: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] 1503 | 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:1510: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] 1510 | 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:1522: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] 1522 | 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:1529: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] 1529 | 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:1536: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] 1536 | 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:1550: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] 1550 | 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:1557: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] 1557 | 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:1564: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] 1564 | 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:1575: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] 1575 | 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:1582: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] 1582 | 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:1589: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] 1589 | 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:1600: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] 1600 | 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:1607: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] 1607 | 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:1614: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] 1614 | 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:1625: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] 1625 | 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:1636: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] 1636 | 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:1643: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] 1643 | 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:1654: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] 1654 | 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:1661: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] 1661 | 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:1672: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] 1672 | 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:1679: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] 1679 | 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:1690: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] 1690 | 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) | ^ 253 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/pubsub.o -c lib/pubsub.c In file included from lib/pubsub.c:41: In file included from ./lib/event.h:12: In file included from ./lib/resource.h:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/pubsub.c:44: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/netindex.c:31:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 31 | if (step > 0) SPINHASH_REHASH_UP(v,NETINDEX,struct netindex,step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:449:21: note: expanded from macro 'SPINHASH_REHASH_UP' 449 | 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:449:21: note: expanded from macro 'SPINHASH_REHASH_UP' 449 | 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:449:21: note: expanded from macro 'SPINHASH_REHASH_UP' 449 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/netindex.c:32:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 32 | if (step < 0) SPINHASH_REHASH_DOWN(v,NETINDEX,struct netindex,-step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:473:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 473 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ lib/netindex.c:32:17: note: place parentheses around the assignment to silence this warning ./lib/hash.h:473:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 473 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/netindex.c:32:17: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:473:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 473 | for (type *n; n = _cur->block[i].data; ) { \ | ^ 6 warnings generated. 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/printf.o -c lib/printf.c clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:41:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 41 | t = atomic_load_explicit(tp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu.c:41:9: note: place parentheses around the assignment to silence this warning 41 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | ( ) lib/rcu.c:41:9: note: use '==' to turn this assignment into an equality comparison 41 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | == lib/rcu.c:95:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 95 | t = atomic_load_explicit(tp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu.c:95:9: note: place parentheses around the assignment to silence this warning 95 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | ( ) lib/rcu.c:95:9: note: use '==' to turn this assignment into an equality comparison 95 | t = atomic_load_explicit(tp, memory_order_acquire); | ^ | == 4 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:74: ./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:203:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 203 | if (h = s->empty_heads.first) | ~~^~~~~~~~~~~~~~~~~~~~~~ lib/slab.c:203:9: note: place parentheses around the assignment to silence this warning 203 | if (h = s->empty_heads.first) | ^ | ( ) lib/slab.c:203:9: note: use '==' to turn this assignment into an equality comparison 203 | if (h = s->empty_heads.first) | ^ | == 3 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/strtoul.c:24:25: warning: '&&' within '||' [-Wlogical-op-parentheses] 23 | if ((out > ULI_MAX_DIV10) || | ~~ 24 | (out == ULI_MAX_DIV10) && (digit > ULI_MAX_MOD10)) { | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ lib/strtoul.c:24:25: note: place parentheses around the '&&' expression to silence this warning 24 | (out == ULI_MAX_DIV10) && (digit > ULI_MAX_MOD10)) { | ^ | ( ) 2 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. TEXINPUTS=:/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex pdflatex -output-directory=obj/doc/ obj/doc/prog.tex This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./obj/doc/prog.tex LaTeX2e <2025-11-01> L3 programming layer <2026-03-20> (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2025/01/22 v1.4n Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty (/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty (/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty) (/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty (/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty))) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/generic/stringenc/stringenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty) (/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty (/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def (/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty))) (/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty) (/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex/birddoc.sty) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/qwertz.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/latin1.def)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)))) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/null.sty) (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) No file prog.aux. (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx)) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) Underfull \hbox (badness 10000) in paragraph at lines 25--25 [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] No file prog.toc. [2] Chapter 1. [3{/usr/share/texlive/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] [4] [5] Chapter 2. [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] Underfull \hbox (badness 10000) in paragraph at lines 1805--1808 []\OT1/cmr/m/n/10 ************************************** In-ter-nal struc-ture of route stor-age * [21] Underfull \hbox (badness 10000) in paragraph at lines 1914--1917 []\OT1/cmr/m/n/10 ***************************************** Free: Ac-tu-ally re -mov-ing from the chain * [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] Chapter 3. [46] [47] [48] [49] [50] [51] [52] Chapter 4. [53] [54] [55] Underfull \hbox (badness 1931) in paragraph at lines 5221--5227 []\OT1/cmr/m/n/10 The trie also sup-ports longest-prefix-match query by \OT1/cm r/m/it/10 trie[]match[]longest[]ip4() \OT1/cmr/m/n/10 and it can be ex- Underfull \hbox (badness 1184) in paragraph at lines 5221--5227 \OT1/cmr/m/n/10 tended to it-er-a-tion over all cov-er-ing pre-fixes for a give n pre-fix (from longest to short-est) us-ing [56] [57] [58] [59] Chapter 5. [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] Underfull \hbox (badness 5036) in paragraph at lines 8031--8037 []\OT1/cmr/m/n/10 The func-tion ac-ti-vates an up-date ses-sion and starts send -ing rout-ing up-date pack-ets (us-ing [85] Underfull \hbox (badness 10000) in paragraph at lines 8094--8096 []\OT1/cmtt/m/n/10 Connecting \OT1/cmr/m/n/10 state es-tab-lishes the trans-por t con-nec-tion. The state from a call Underfull \hbox (badness 1043) in paragraph at lines 8117--8121 \OT1/cmr/m/n/10 main-tain-ing a con-nec-tion are used timer events that are sch ed-uled by \OT1/cmr/m/it/10 rpki[]schedule[]next[]refresh()\OT1/cmr/m/n/10 , [86] [87] [88] [89] [90] [91] [92] Chapter 6. [93] [94] [95] Chapter 7. [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] Chapter 8. [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] (obj/doc//prog.aux) LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. Package rerunfilecheck Warning: File `prog.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. ) (see the transcript file for additional information) Output written on obj/doc//prog.pdf (129 pages, 542848 bytes). Transcript written on obj/doc//prog.log. TEXINPUTS=:/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex pdflatex -output-directory=obj/doc/ obj/doc/prog.tex This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./obj/doc/prog.tex LaTeX2e <2025-11-01> L3 programming layer <2026-03-20> (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2025/01/22 v1.4n Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty (/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty) (/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty (/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty) (/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty (/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty))) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/generic/stringenc/stringenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty) (/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty (/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def (/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty))) (/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty) (/builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/tex/birddoc.sty) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/qwertz.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/latin1.def)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)))) (/usr/share/texlive/texmf-local/texmf-compat/tex/latex/misc/null.sty) (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) (obj/doc//prog.aux LaTeX Warning: Label `filters' multiply defined. ) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx)) (obj/doc//prog.out) (obj/doc//prog.out) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) Underfull \hbox (badness 10000) in paragraph at lines 25--25 [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (obj/doc//prog.toc [2]) [3] Chapter 1. [4{/usr/share/texlive/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] [5] [6] Chapter 2. [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] Underfull \hbox (badness 10000) in paragraph at lines 1805--1808 []\OT1/cmr/m/n/10 ************************************** In-ter-nal struc-ture of route stor-age * [22] Underfull \hbox (badness 10000) in paragraph at lines 1914--1917 []\OT1/cmr/m/n/10 ***************************************** Free: Ac-tu-ally re -mov-ing from the chain * [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] Chapter 3. [47] [48] [49] [50] [51] [52] [53] Chapter 4. [54] [55] [56] Underfull \hbox (badness 1931) in paragraph at lines 5221--5227 []\OT1/cmr/m/n/10 The trie also sup-ports longest-prefix-match query by \OT1/cm r/m/it/10 trie[]match[]longest[]ip4() \OT1/cmr/m/n/10 and it can be ex- Underfull \hbox (badness 1184) in paragraph at lines 5221--5227 \OT1/cmr/m/n/10 tended to it-er-a-tion over all cov-er-ing pre-fixes for a give n pre-fix (from longest to short-est) us-ing [57] [58] [59] [60] Chapter 5. [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] Underfull \hbox (badness 5036) in paragraph at lines 8031--8037 []\OT1/cmr/m/n/10 The func-tion ac-ti-vates an up-date ses-sion and starts send -ing rout-ing up-date pack-ets (us-ing [86] Underfull \hbox (badness 10000) in paragraph at lines 8094--8096 []\OT1/cmtt/m/n/10 Connecting \OT1/cmr/m/n/10 state es-tab-lishes the trans-por t con-nec-tion. The state from a call Underfull \hbox (badness 1043) in paragraph at lines 8117--8121 \OT1/cmr/m/n/10 main-tain-ing a con-nec-tion are used timer events that are sch ed-uled by \OT1/cmr/m/it/10 rpki[]schedule[]next[]refresh()\OT1/cmr/m/n/10 , [87] [88] [89] [90] [91] [92] [93] Chapter 6. [94] [95] [96] Chapter 7. [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] Chapter 8. [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] (obj/doc//prog.aux) LaTeX Warning: There were multiply-defined labels. ) (see the transcript file for additional information) Output written on obj/doc//prog.pdf (130 pages, 550909 bytes). Transcript written on obj/doc//prog.log. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ nest/cli.c:337:12: warning: variable 'cli_log_inited' set but not used [-Wunused-but-set-global] 337 | static int cli_log_inited; | ^ 10 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:170:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 170 | while (t = timers_first(loop)) | ~~^~~~~~~~~~~~~~~~~~~~ lib/timer.c:170:12: note: place parentheses around the assignment to silence this warning 170 | while (t = timers_first(loop)) | ^ | ( ) lib/timer.c:170:12: note: use '==' to turn this assignment into an equality comparison 170 | while (t = timers_first(loop)) | ^ | == lib/timer.c:279:57: warning: '&&' within '||' [-Wlogical-op-parentheses] 279 | ((fmt[1] == 'f') || (fmt[1] >= '1') && (fmt[1] <= '6') && (fmt[2] == 'f'))) | ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ lib/timer.c:279:57: note: place parentheses around the '&&' expression to silence this warning 279 | ((fmt[1] == 'f') || (fmt[1] >= '1') && (fmt[1] <= '6') && (fmt[2] == 'f'))) | ^ | ( ) lib/timer.c:324: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] 324 | if (!strfusec(tbuf, tbuf_size, fmt, t2)) | ^~~~ lib/timer.c:268:16: note: passing argument to parameter 'buf' here 268 | strfusec(char *buf, int size, const char *fmt, uint usec) | ^ lib/timer.c:327: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] 327 | return strftime(x, max, tbuf, &tm); | ^~~~ /usr/include/time.h:109:27: note: passing argument to parameter '__format' here 109 | const char *__restrict __format, | ^ 7 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/cmds.c:10: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:146:27: note: passing argument to parameter 'x' here 146 | 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:146:27: note: passing argument to parameter 'x' here 146 | 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:146:27: note: passing argument to parameter 'x' here 146 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ 19 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/nest/proto-build.o -c obj/nest/proto-build.c clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/neighbor.c:53: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/iface.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:559:4: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 559 | 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:559:4: note: place parentheses around the assignment to silence this warning 559 | 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:559: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:1064: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] 1064 | const char *t = p->pattern; | ^ ~~~~~~~~~~ nest/iface.c:1075: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] 1075 | 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:1075: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] 1075 | 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:1122: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] 1122 | ((x->pattern != y->pattern) && strcmp(x->pattern, y->pattern)) || | ^~~~~~~~~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ nest/iface.c:1122: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] 1122 | ((x->pattern != y->pattern) && strcmp(x->pattern, y->pattern)) || | ^~~~~~~~~~ /usr/include/string.h:171:50: note: passing argument to parameter '__s2' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ nest/iface.c:1158: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] 1158 | flg = (a->flags & IA_PRIMARY) ? "Preferred, " : (a->flags & IA_SECONDARY) ? "Secondary, " : ""; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/iface.c:1161: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] 1161 | 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:1225: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] 1225 | 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:1230: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] 1230 | 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, ...); | ^ 26 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/rt-dev.c:20: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:1143:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1143 | 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:1143: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:1143: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:1148:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1148 | 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:1148: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:1148: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:1180:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1180 | 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:1180: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:1180: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) \ | ^ 23 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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)) | ^ | == 14 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:146:27: note: passing argument to parameter 'x' here 146 | 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:890:41: note: passing argument to parameter 'buf' here 890 | 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:302:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 302 | RT_FEED_WALK(&d->tab->req, f) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-show.c:302:7: note: place parentheses around the assignment to silence this warning 302 | RT_FEED_WALK(&d->tab->req, f) | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/rt-show.c:302:7: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/rt-show.c:315:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 315 | RT_FEED_WALK(&d->tab->req, f) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-show.c:315:5: note: place parentheses around the assignment to silence this warning 315 | RT_FEED_WALK(&d->tab->req, f) | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/rt-show.c:315:5: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/rt-show.c:296:32: warning: unused variable 'feeds' [-Wunused-variable] 296 | const struct rt_export_feed *feeds[129] = { 0 }; | ^~~~~ nest/rt-show.c:439:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 439 | 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:439:3: note: place parentheses around the assignment to silence this warning 439 | 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:439: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) | ^ 28 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:471:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 471 | if (it = e->readers) | ~~~^~~~~~~~~~~~ nest/rt-fib.c:471:11: note: place parentheses around the assignment to silence this warning 471 | if (it = e->readers) | ^ | ( ) nest/rt-fib.c:471:11: note: use '==' to turn this assignment into an equality comparison 471 | if (it = e->readers) | ^ | == nest/rt-fib.c:521:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 521 | if (n = f->hash_table[h]) | ~~^~~~~~~~~~~~~~~~~~ nest/rt-fib.c:521:11: note: place parentheses around the assignment to silence this warning 521 | if (n = f->hash_table[h]) | ^ | ( ) nest/rt-fib.c:521:11: note: use '==' to turn this assignment into an equality comparison 521 | if (n = f->hash_table[h]) | ^ | == nest/rt-fib.c:524:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 524 | if (i->next = n->readers) | ~~~~~~~~^~~~~~~~~~~~ nest/rt-fib.c:524:14: note: place parentheses around the assignment to silence this warning 524 | if (i->next = n->readers) | ^ | ( ) nest/rt-fib.c:524:14: note: use '==' to turn this assignment into an equality comparison 524 | if (i->next = n->readers) | ^ | == nest/rt-fib.c:556:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 556 | if (k = i->next) | ~~^~~~~~~~~ nest/rt-fib.c:556:9: note: place parentheses around the assignment to silence this warning 556 | if (k = i->next) | ^ | ( ) nest/rt-fib.c:556:9: note: use '==' to turn this assignment into an equality comparison 556 | if (k = i->next) | ^ | == nest/rt-fib.c:569:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 569 | if (j = n->readers) | ~~^~~~~~~~~~~~ nest/rt-fib.c:569:9: note: place parentheses around the assignment to silence this warning 569 | if (j = n->readers) | ^ | ( ) nest/rt-fib.c:569:9: note: use '==' to turn this assignment into an equality comparison 569 | if (j = n->readers) | ^ | == nest/rt-fib.c:579:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 579 | if (n = n->next) | ~~^~~~~~~~~ nest/rt-fib.c:579:9: note: place parentheses around the assignment to silence this warning 579 | if (n = n->next) | ^ | ( ) nest/rt-fib.c:579:9: note: use '==' to turn this assignment into an equality comparison 579 | if (n = n->next) | ^ | == nest/rt-fib.c:583:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 583 | if (n = f->hash_table[hpos]) | ~~^~~~~~~~~~~~~~~~~~~~~ nest/rt-fib.c:583:11: note: place parentheses around the assignment to silence this warning 583 | if (n = f->hash_table[hpos]) | ^ | ( ) nest/rt-fib.c:583:11: note: use '==' to turn this assignment into an equality comparison 583 | if (n = f->hash_table[hpos]) | ^ | == 18 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/nest/rt-attr.o -c nest/rt-attr.c In file included from nest/rt-attr.c:50: 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: 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:51: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/rt-attr.c:51: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:51: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:52: In file included from ./nest/protocol.h:224: ./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:54: 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: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 | 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:116: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] 116 | 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:372:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 372 | 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:372:3: note: place parentheses around the assignment to silence this warning 372 | 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:372: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:1314: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] 1314 | strcpy(buf, " ..."); | ^~~ /usr/include/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ nest/rt-attr.c:1318: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] 1318 | 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:1323: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] 1323 | 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:1342: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] 1342 | strcpy(buf, " ..."); | ^~~ /usr/include/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ nest/rt-attr.c:1348: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] 1348 | 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:1437: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] 1437 | 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:1439: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] 1439 | 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:1445: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] 1445 | 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:1447: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] 1447 | 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:1489: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] 1489 | bsprintf(pos, "unknown"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ nest/rt-attr.c:1491: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] 1491 | 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:1497: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] 1497 | 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:1500: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] 1500 | 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:1515: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] 1515 | 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:1524: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] 1524 | 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:1614:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1614 | if (e = e->next) | ~~^~~~~~~~~ nest/rt-attr.c:1614:13: note: place parentheses around the assignment to silence this warning 1614 | if (e = e->next) | ^ | ( ) nest/rt-attr.c:1614:13: note: use '==' to turn this assignment into an equality comparison 1614 | if (e = e->next) | ^ | == nest/rt-attr.c:2027:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2027 | else | ^ 36 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/aggregator/aggregator.o -c proto/aggregator/aggregator.c In file included from proto/aggregator/aggregator.c:43: 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:43: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: ./lib/string.h:50:9: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] 50 | char *s = strrchr(str, '/'); | ^ ~~~~~~~~~~~~~~~~~ In file included from proto/aggregator/aggregator.c:44: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:44: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:44: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:44: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:45: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:45: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:45: 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 proto/aggregator/aggregator.c:45: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/aggregator/aggregator.c:45: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/aggregator/aggregator.c:46: In file included from proto/aggregator/aggregator.h:17: In file included from ./nest/protocol.h:224: ./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/aggregator/aggregator.c:263:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 263 | if (new_bucket = HASH_FIND(p->buckets, AGGR_BUCK, tmp_bucket)) | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/aggregator/aggregator.c:263:20: note: place parentheses around the assignment to silence this warning 263 | if (new_bucket = HASH_FIND(p->buckets, AGGR_BUCK, tmp_bucket)) | ^ | ( ) proto/aggregator/aggregator.c:263:20: note: use '==' to turn this assignment into an equality comparison 263 | if (new_bucket = HASH_FIND(p->buckets, AGGR_BUCK, tmp_bucket)) | ^ | == proto/aggregator/aggregator.c:299:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 299 | HASH_REMOVE2(p->routes, AGGR_RTE, p->p.pool, old_route); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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/aggregator/aggregator.c:299: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) \ | ^ proto/aggregator/aggregator.c:299: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) \ | ^ proto/aggregator/aggregator.c:315:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 315 | HASH_REMOVE2(p->buckets, AGGR_BUCK, p->p.pool, old_bucket); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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/aggregator/aggregator.c:315: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) \ | ^ proto/aggregator/aggregator.c:315: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) \ | ^ proto/aggregator/aggregator.c:411:46: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 411 | for (struct aggregator_route *arte; arte = b->rte; ) | ~~~~~^~~~~~~~ proto/aggregator/aggregator.c:411:46: note: place parentheses around the assignment to silence this warning 411 | for (struct aggregator_route *arte; arte = b->rte; ) | ^ | ( ) proto/aggregator/aggregator.c:411:46: note: use '==' to turn this assignment into an equality comparison 411 | for (struct aggregator_route *arte; arte = b->rte; ) | ^ | == proto/aggregator/aggregator.c:415:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 415 | HASH_REMOVE(p->routes, AGGR_RTE, arte); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/aggregator/aggregator.c:415:7: 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/aggregator/aggregator.c:415:7: 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/aggregator/aggregator.c:424:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 424 | HASH_REMOVE(p->buckets, AGGR_BUCK, b); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/aggregator/aggregator.c:424:5: 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/aggregator/aggregator.c:424:5: 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) \ | ^ 20 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:109: ./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) | ^ | == 23 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/proto.c:12: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:591:35: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 591 | for (struct lfjour_item *it; it = lfjour_get(&s->digest_recipient); ) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:591:35: note: place parentheses around the assignment to silence this warning 591 | for (struct lfjour_item *it; it = lfjour_get(&s->digest_recipient); ) | ^ | ( ) nest/proto.c:591:35: note: use '==' to turn this assignment into an equality comparison 591 | for (struct lfjour_item *it; it = lfjour_get(&s->digest_recipient); ) | ^ | == nest/proto.c:618:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 618 | else | ^ nest/proto.c:638:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 638 | it = lfjour_get(&s->digest_recipient); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:638:10: note: place parentheses around the assignment to silence this warning 638 | it = lfjour_get(&s->digest_recipient); | ^ | ( ) nest/proto.c:638:10: note: use '==' to turn this assignment into an equality comparison 638 | it = lfjour_get(&s->digest_recipient); | ^ | == nest/proto.c:1029:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1029 | RT_FEED_WALK(&c->reimporter, f) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:1029:3: note: place parentheses around the assignment to silence this warning 1029 | RT_FEED_WALK(&c->reimporter, f) | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/proto.c:1029:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ nest/proto.c:1285:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1285 | else | ^ nest/proto.c:1380:45: warning: '&&' within '||' [-Wlogical-op-parentheses] 1379 | (cf->in_keep != c->in_keep) || | ~~ 1380 | cf->out_subprefix && c->out_subprefix && | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ 1381 | !net_equal(cf->out_subprefix, c->out_subprefix) || | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/proto.c:1380:45: note: place parentheses around the '&&' expression to silence this warning 1380 | cf->out_subprefix && c->out_subprefix && | ^ | ( 1381 | !net_equal(cf->out_subprefix, c->out_subprefix) || | ) nest/proto.c:1944: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] 1944 | if (oc->parent && !cf_find_symbol(new, oc->name) && !new->shutdown) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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:1946: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] 1946 | 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:1953:44: 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] 1953 | struct symbol *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:1993: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] 1993 | 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:3031: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] 3031 | tm_format_time(tbuf, tf, p->last_state_change); | ^~~~ ./lib/timer.h:146:27: note: passing argument to parameter 'x' here 146 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/proto.c:3046: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] 3046 | tm_format_time(tbuf, tf, p->last_reconfiguration); | ^~~~ ./lib/timer.h:146:27: note: passing argument to parameter 'x' here 146 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/proto.c:3050: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] 3050 | tm_format_time(tbuf, tf, p->last_restart); | ^~~~ ./lib/timer.h:146:27: note: passing argument to parameter 'x' here 146 | void tm_format_time(char *x, struct timeformat *fmt, btime t); | ^ nest/proto.c:3266: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] 3266 | 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:3266: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] 3266 | 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); | ^ 31 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:109: ./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:146:27: note: passing argument to parameter 'x' here 146 | 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)); | ^~~~ 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)); | ^~~~ 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]) | ^ 29 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:1933: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] 1933 | 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); | ^ 15 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:416:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 416 | 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:416:3: note: place parentheses around the assignment to silence this warning 416 | 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:416: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:538:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 538 | 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:538:5: note: place parentheses around the assignment to silence this warning 538 | 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:538: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:1011:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1011 | 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:1011:3: note: place parentheses around the assignment to silence this warning 1011 | 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:1011: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:2188:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2188 | 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:2188:3: note: place parentheses around the assignment to silence this warning 2188 | 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:2188: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:2193:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2193 | 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:2193:3: note: place parentheses around the assignment to silence this warning 2193 | 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:2193: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:2208: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] 2208 | 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:2218: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] 2218 | 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:2264: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] 2264 | 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:2264: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] 2264 | 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:2301: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] 2301 | 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:2301: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] 2301 | 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:2325:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2325 | 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:2325:3: note: place parentheses around the assignment to silence this warning 2325 | 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:2325: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:2340:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2340 | else if (r = e->selected) | ~~^~~~~~~~~~~~~ proto/babel/babel.c:2340:16: note: place parentheses around the assignment to silence this warning 2340 | else if (r = e->selected) | ^ | ( ) proto/babel/babel.c:2340:16: note: use '==' to turn this assignment into an equality comparison 2340 | else if (r = e->selected) | ^ | == proto/babel/babel.c:2375:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2375 | 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:2375:3: note: place parentheses around the assignment to silence this warning 2375 | 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:2375: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) | ^ 30 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/bgp/bgp.o -c proto/bgp/bgp.c In file included from proto/bgp/bgp.c:120: 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:121: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:121: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:121: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:121: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:122: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:122: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:122: 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:122: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/bgp/bgp.c:122: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:122: In file included from ./nest/protocol.h:224: ./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:125: 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:134: 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/bgp/bgp.c:136: In file included from ./proto/bmp/bmp.h:112: ./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:136: In file included from ./proto/bmp/bmp.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/bgp/bgp.c:847:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 847 | 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:847:5: note: place parentheses around the assignment to silence this warning 847 | 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:847: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:3347:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3347 | if (tab = rt_get_default_table(cf->c.global, type)) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/bgp.c:3347:11: note: place parentheses around the assignment to silence this warning 3347 | if (tab = rt_get_default_table(cf->c.global, type)) | ^ | ( ) proto/bgp/bgp.c:3347:11: note: use '==' to turn this assignment into an equality comparison 3347 | if (tab = rt_get_default_table(cf->c.global, type)) | ^ | == proto/bgp/bgp.c:3550:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 3550 | else | ^ proto/bgp/bgp.c:3557:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 3557 | else | ^ proto/bgp/bgp.c:3711:22: warning: '&&' within '||' [-Wlogical-op-parentheses] 3711 | p->incoming_conn.sk && !iface_patt_match(new->ipatt, p->incoming_conn.sk->iface, NULL) || | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ proto/bgp/bgp.c:3711:22: note: place parentheses around the '&&' expression to silence this warning 3711 | p->incoming_conn.sk && !iface_patt_match(new->ipatt, p->incoming_conn.sk->iface, NULL) || | ^ | ( ) proto/bgp/bgp.c:3712:22: warning: '&&' within '||' [-Wlogical-op-parentheses] 3711 | p->incoming_conn.sk && !iface_patt_match(new->ipatt, p->incoming_conn.sk->iface, NULL) || | ~~ 3712 | p->outgoing_conn.sk && !iface_patt_match(new->ipatt, p->outgoing_conn.sk->iface, NULL))) | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/bgp.c:3712:22: note: place parentheses around the '&&' expression to silence this warning 3712 | p->outgoing_conn.sk && !iface_patt_match(new->ipatt, p->outgoing_conn.sk->iface, NULL))) | ^ | ( ) proto/bgp/bgp.c:3738:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3738 | 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:3738:3: note: place parentheses around the assignment to silence this warning 3738 | 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:3738: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:3982: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] 3982 | 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:3984: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] 3984 | 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:4005: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] 4005 | strcpy(b.end - 32, " ... "); | ^~~~~~~~~~ /usr/include/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ proto/bgp/bgp.c:4007: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] 4007 | 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, ...) | ^ 36 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/bgp/attrs.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:477: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] 477 | 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:596: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] 596 | 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:598: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] 598 | 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:682: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] 682 | 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:956: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] 956 | bsnprintf(buf, size, "no-info%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); | ^ proto/bgp/attrs.c:961: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] 961 | bsnprintf(buf, size, "ingress-replication %I%s", a, 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); | ^ proto/bgp/attrs.c:965: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] 965 | int n = bsnprintf(buf, size, "type %u%s ", type, 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); | ^ proto/bgp/attrs.c:967:48: 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] 967 | bstrbintohex(ad->data + 5, ad->length - 5, buf, size, ':'); | ^~~ ./lib/string.h:44:51: note: passing argument to parameter 'buf' here 44 | int bstrbintohex(const byte *b, size_t len, char *buf, size_t size, char delim) ACCESS_READ(1, 2) ACCESS_WRITE(3, 4); | ^ proto/bgp/attrs.c:1002: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] 1002 | 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:1004: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] 1004 | 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:1091: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] 1091 | char *pos = buf; | ^ ~~~ proto/bgp/attrs.c:1132: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] 1132 | 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:2187:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2187 | 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:2187: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:2187: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:2221:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2221 | while (px = bgp_bucket_pop_prefix(c, b)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2221:13: note: place parentheses around the assignment to silence this warning 2221 | while (px = bgp_bucket_pop_prefix(c, b)) | ^ | ( ) proto/bgp/attrs.c:2221:13: note: use '==' to turn this assignment into an equality comparison 2221 | while (px = bgp_bucket_pop_prefix(c, b)) | ^ | == proto/bgp/attrs.c:2347:70: warning: '&&' within '||' [-Wlogical-op-parentheses] 2347 | if ((px->last_buck == b->my_id) || c->c->tx_keep && !px->last_buck && IS_WITHDRAW_BUCKET(b)) | ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2347:70: note: place parentheses around the '&&' expression to silence this warning 2347 | if ((px->last_buck == b->my_id) || c->c->tx_keep && !px->last_buck && IS_WITHDRAW_BUCKET(b)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2369:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2369 | else | ^ proto/bgp/attrs.c:2393:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2393 | 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:2393: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:2393: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:2646:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2646 | while (px = bgp_bucket_pop_prefix(c, b)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2646:13: note: place parentheses around the assignment to silence this warning 2646 | while (px = bgp_bucket_pop_prefix(c, b)) | ^ | ( ) proto/bgp/attrs.c:2646:13: note: use '==' to turn this assignment into an equality comparison 2646 | while (px = bgp_bucket_pop_prefix(c, b)) | ^ | == proto/bgp/attrs.c:2652:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2652 | while (px = bgp_bucket_pop_prefix(c, b)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:2652:15: note: place parentheses around the assignment to silence this warning 2652 | while (px = bgp_bucket_pop_prefix(c, b)) | ^ | ( ) proto/bgp/attrs.c:2652:15: note: use '==' to turn this assignment into an equality comparison 2652 | while (px = bgp_bucket_pop_prefix(c, b)) | ^ | == proto/bgp/attrs.c:3350:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3350 | s = atomic_load_explicit(ptr, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:3350:9: note: place parentheses around the assignment to silence this warning 3350 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | ( ) proto/bgp/attrs.c:3350:9: note: use '==' to turn this assignment into an equality comparison 3350 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | == proto/bgp/attrs.c:3371:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3371 | s = atomic_load_explicit(ptr, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:3371:9: note: place parentheses around the assignment to silence this warning 3371 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | ( ) proto/bgp/attrs.c:3371:9: note: use '==' to turn this assignment into an equality comparison 3371 | s = atomic_load_explicit(ptr, memory_order_acquire); | ^ | == proto/bgp/attrs.c:3418:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3418 | RT_FEED_WALK(&c->stale_feed, f) TMP_SAVED | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:3418:3: note: place parentheses around the assignment to silence this warning 3418 | RT_FEED_WALK(&c->stale_feed, f) TMP_SAVED | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bgp/attrs.c:3418:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bgp/attrs.c:3517: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] 3517 | 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:3522: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] 3522 | 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:3525: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] 3525 | 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:3531: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] 3531 | 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:3533:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3533 | else if (ic = ea_find(e->attrs, &ea_gen_local_metric)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/attrs.c:3533:17: note: place parentheses around the assignment to silence this warning 3533 | else if (ic = ea_find(e->attrs, &ea_gen_local_metric)) | ^ | ( ) proto/bgp/attrs.c:3533:17: note: use '==' to turn this assignment into an equality comparison 3533 | else if (ic = ea_find(e->attrs, &ea_gen_local_metric)) | ^ | == proto/bgp/attrs.c:3536: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] 3536 | 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:3538: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] 3538 | 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:3540: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] 3540 | buf += bsprintf(buf, "/%d", ic->u.i); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bgp/attrs.c:3543: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] 3543 | 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:3546: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] 3546 | 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:3548: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] 3548 | 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:3549: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] 3549 | strcpy(buf, "]"); | ^~~ /usr/include/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 50 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/bridge/bridge.o -c proto/bridge/bridge.c In file included from proto/bridge/bridge.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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.c:29: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.c:29: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.c:29: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.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 proto/bridge/bridge.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/bridge/bridge.c:30: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bridge/bridge.c:30: In file included from ./nest/protocol.h:224: ./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/bridge/bridge.c:33: 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/bridge/bridge.c:339:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 339 | RT_FEED_WALK(&fx, f) | ^~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bridge/bridge.c:339:3: note: place parentheses around the assignment to silence this warning 339 | RT_FEED_WALK(&fx, f) | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bridge/bridge.c:339:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bridge/bridge.c:468:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 468 | RT_FEED_WALK(&fx, f) | ^~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bridge/bridge.c:468:3: note: place parentheses around the assignment to silence this warning 468 | RT_FEED_WALK(&fx, f) | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bridge/bridge.c:468:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ proto/bridge/bridge.c:587:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 587 | struct kbr_vlan *old = HASH_DELETE(p->vlan_vni_hash, VLAN_VNI, v->ifi, v->vni); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bridge/bridge.c:587:26: note: place parentheses around the assignment to silence this warning ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ^ proto/bridge/bridge.c:587:26: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ^ proto/bridge/bridge.c:592:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 592 | HASH_REMOVE(p->vlan_vni_hash, VLAN_VNI, v); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bridge/bridge.c:592:5: 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/bridge/bridge.c:592:5: 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/bridge/bridge.c:604:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 604 | HASH_REMOVE(p->vlan_vni_hash, VLAN_VNI, v); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bridge/bridge.c:604:5: 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/bridge/bridge.c:604:5: 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/bridge/bridge.c:925: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] 925 | 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); | ^ proto/bridge/bridge.c:927: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] 927 | bsnprintf(buf, size, "%s", kbr_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); | ^ proto/bridge/bridge.c:943: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] 943 | bsprintf(buf, " %c (%u)", src, rt_get_preference(rte)); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 24 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/bmp/bmp.o -c proto/bmp/bmp.c In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: 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/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:13: In file included from ./nest/protocol.h:224: ./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/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:20: 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/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.h:112: ./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/bmp/bmp.c:31: In file included from ./proto/bmp/bmp.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) | ^ | == In file included from proto/bmp/bmp.c:45: 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/bmp/bmp.c:49: In file included from ./sysdep/unix/io-loop.h:87: ./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/bmp/bmp.c:49: In file included from ./sysdep/unix/io-loop.h:126: ./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/bmp/bmp.c:369:39: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 369 | for (struct bmp_tx_buffer *btb; btb = p->tx_pending; ) | ~~~~^~~~~~~~~~~~~~~ proto/bmp/bmp.c:369:39: note: place parentheses around the assignment to silence this warning 369 | for (struct bmp_tx_buffer *btb; btb = p->tx_pending; ) | ^ | ( ) proto/bmp/bmp.c:369:39: note: use '==' to turn this assignment into an equality comparison 369 | for (struct bmp_tx_buffer *btb; btb = p->tx_pending; ) | ^ | == proto/bmp/bmp.c:581:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 581 | HASH_REMOVE(p->table_map, HASH_TABLE, bt); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bmp/bmp.c:581: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/bmp/bmp.c:581: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/bmp/bmp.c:639:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 639 | HASH_REMOVE(p->stream_map, HASH_STREAM, bs); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bmp/bmp.c:639: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/bmp/bmp.c:639: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/bmp/bmp.c:715:22: 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] 715 | bsi.channel_name = ea_get_adata(bsi.channel_state, &ea_name)->data; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bmp/bmp.c:753:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 753 | HASH_REMOVE(p->peer_map, HASH_PEER, bp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ proto/bmp/bmp.c:753: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/bmp/bmp.c:753: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/bmp/bmp.c:852:48: warning: '&&' within '||' [-Wlogical-op-parentheses] 852 | if ((old == new->attrs) || old && new->attrs && ea_same(old, new->attrs)) | ~~ ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bmp/bmp.c:852:48: note: place parentheses around the '&&' expression to silence this warning 852 | if ((old == new->attrs) || old && new->attrs && ea_same(old, new->attrs)) | ^ | ( ) proto/bmp/bmp.c:1077:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1077 | RT_EXPORT_WALK(&bt->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ proto/bmp/bmp.c:1077:3: note: place parentheses around the assignment to silence this warning 1077 | RT_EXPORT_WALK(&bt->out_req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ proto/bmp/bmp.c:1077:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ proto/bmp/bmp.c:1214:21: warning: initializing 'const char *' with an expression of type '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] 1214 | .proto_name = ea_get_adata(pst[i], &ea_name)->data, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/route.h:382:34: note: expanded from macro 'ea_get_adata' 382 | #define ea_get_adata(_l, _ident) ({ \ | ^ proto/bmp/bmp.c:1408:19: warning: initializing 'const char *' with an expression of type '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] 1408 | .proto_name = ea_get_adata(ppu->new, &ea_name)->data, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/route.h:382:34: note: expanded from macro 'ea_get_adata' 382 | #define ea_get_adata(_l, _ident) ({ \ | ^ proto/bmp/bmp.c:1443:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1443 | last_up = lfjour_get(&p->proto_state_reader); | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bmp/bmp.c:1443:15: note: place parentheses around the assignment to silence this warning 1443 | last_up = lfjour_get(&p->proto_state_reader); | ^ | ( ) proto/bmp/bmp.c:1443:15: note: use '==' to turn this assignment into an equality comparison 1443 | last_up = lfjour_get(&p->proto_state_reader); | ^ | == proto/bmp/bmp.c:1556: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] 1556 | bsprintf(buf, "Down"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bmp/bmp.c:1558: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] 1558 | bsprintf(buf, "Flush"); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bmp/bmp.c:1564: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] 1564 | bsprintf(buf, "%s", state); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bmp/bmp.c:1566: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] 1566 | bsprintf(buf, "%-14s%s %M", state, "Error:", p->sock_err); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/bmp/bmp.c:185:1: warning: unused function 'bmp_put_ip4' [-Wunused-function] 185 | BMP_DEFINE_PUT_FUNC(ip4, ip4_addr) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bmp/bmp.c:174:3: note: expanded from macro 'BMP_DEFINE_PUT_FUNC' 174 | bmp_put_##S(buffer *b, const T x) \ | ^~~~~~~~~~~ :110:1: note: expanded from here 110 | bmp_put_ip4 | ^~~~~~~~~~~ 46 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:460: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] 460 | 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:465: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] 465 | 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:493:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 493 | RT_EXPORT_WALK(&rag->src, u) TMP_SAVED | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:493:3: note: place parentheses around the assignment to silence this warning 493 | RT_EXPORT_WALK(&rag->src, u) TMP_SAVED | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:493:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:567:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 567 | else if (rad->u[p].max_pxlen == max_pxlen) | ^ nest/rt-table.c:963:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 963 | 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:963:12: note: place parentheses around the assignment to silence this warning 963 | 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:963: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:1147:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1147 | if (better = new->src->owner->class->rte_better) | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1147:14: note: place parentheses around the assignment to silence this warning 1147 | if (better = new->src->owner->class->rte_better) | ^ | ( ) nest/rt-table.c:1147:14: note: use '==' to turn this assignment into an equality comparison 1147 | if (better = new->src->owner->class->rte_better) | ^ | == nest/rt-table.c:1166:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1166 | if (mergable = pri->src->owner->class->rte_mergable) | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1166:16: note: place parentheses around the assignment to silence this warning 1166 | if (mergable = pri->src->owner->class->rte_mergable) | ^ | ( ) nest/rt-table.c:1166:16: note: use '==' to turn this assignment into an equality comparison 1166 | if (mergable = pri->src->owner->class->rte_mergable) | ^ | == nest/rt-table.c:1219:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1219 | 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:1219:3: note: place parentheses around the assignment to silence this warning 1219 | 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:1219: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:1247:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1247 | 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:1247:3: note: place parentheses around the assignment to silence this warning 1247 | 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:1247: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:1478:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1478 | RT_EXPORT_WALK(req, u) | ^~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1478:3: note: place parentheses around the assignment to silence this warning 1478 | RT_EXPORT_WALK(req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1478:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1541:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1541 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1541:12: note: place parentheses around the assignment to silence this warning 1541 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:1541:12: note: use '==' to turn this assignment into an equality comparison 1541 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:1602:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1602 | RT_EXPORT_WALK(req, u) | ^~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1602:3: note: place parentheses around the assignment to silence this warning 1602 | RT_EXPORT_WALK(req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1602:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1698:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1698 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1698:12: note: place parentheses around the assignment to silence this warning 1698 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:1698:12: note: use '==' to turn this assignment into an equality comparison 1698 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:1857:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1857 | RT_EXPORT_WALK(&c->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1857:3: note: place parentheses around the assignment to silence this warning 1857 | RT_EXPORT_WALK(&c->out_req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1857:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _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 | RT_EXPORT_WALK(&c->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:1998:3: note: place parentheses around the assignment to silence this warning 1998 | RT_EXPORT_WALK(&c->out_req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:1998:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:2029:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2029 | RT_EXPORT_WALK(&tab->best_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2029:3: note: place parentheses around the assignment to silence this warning 2029 | RT_EXPORT_WALK(&tab->best_req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:2029:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:2234:8: warning: variable 'cleared_counter' set but not used [-Wunused-but-set-variable] 2234 | uint cleared_counter = 0; | ^ nest/rt-table.c:2325:22: warning: '&&' within '||' [-Wlogical-op-parentheses] 2321 | (x == y) || ( | ~~ ~ 2322 | (x->attrs == y->attrs) || | ~~~~~~~~~~~~~~~~~~~~~~~~~ 2323 | ((!x->attrs->stored || !y->attrs->stored) && ea_same(x->attrs, y->attrs)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2324 | ) && | ~~~~ 2325 | x->src == y->src && | ~~~~~~~~~~~~~~~~~^~ 2326 | rte_is_filtered(x) == rte_is_filtered(y); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2325:22: note: place parentheses around the '&&' expression to silence this warning 2321 | (x == y) || ( | ( 2322 | (x->attrs == y->attrs) || 2323 | ((!x->attrs->stored || !y->attrs->stored) && ea_same(x->attrs, y->attrs)) 2324 | ) && 2325 | x->src == y->src && | ^ 2326 | rte_is_filtered(x) == rte_is_filtered(y); | | ) nest/rt-table.c:2355:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2355 | 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:2355:3: note: place parentheses around the assignment to silence this warning 2355 | 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:2355: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:2361:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2361 | else | ^ nest/rt-table.c:2465:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2465 | for (; kk = atomic_load_explicit(k, memory_order_relaxed); k = &kk->next) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2465:14: note: place parentheses around the assignment to silence this warning 2465 | for (; kk = atomic_load_explicit(k, memory_order_relaxed); k = &kk->next) | ^ | ( ) nest/rt-table.c:2465:14: note: use '==' to turn this assignment into an equality comparison 2465 | for (; kk = atomic_load_explicit(k, memory_order_relaxed); k = &kk->next) | ^ | == nest/rt-table.c:2542:6: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2542 | kk = atomic_load_explicit(k, memory_order_relaxed); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:2542:6: note: place parentheses around the assignment to silence this warning 2542 | kk = atomic_load_explicit(k, memory_order_relaxed); | ^ | ( ) nest/rt-table.c:2542:6: note: use '==' to turn this assignment into an equality comparison 2542 | kk = atomic_load_explicit(k, memory_order_relaxed); | ^ | == nest/rt-table.c:2596:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2596 | 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:2596:5: note: place parentheses around the assignment to silence this warning 2596 | 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:2596: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:2661:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2661 | else | ^ nest/rt-table.c:3074:36: warning: '&&' within '||' [-Wlogical-op-parentheses] 3074 | if (!ecnt && (!best || prefilter && !prefilter(f, best->rte.net))) | ~~ ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3074:36: note: place parentheses around the '&&' expression to silence this warning 3074 | if (!ecnt && (!best || prefilter && !prefilter(f, best->rte.net))) | ^ | ( ) nest/rt-table.c:3221:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3221 | 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:3221:7: note: place parentheses around the assignment to silence this warning 3221 | 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:3221: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:3318:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3318 | 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:3318:5: note: place parentheses around the assignment to silence this warning 3318 | 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:3318: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:3493: ./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:3503:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3503 | RT_EXPORT_WALK(&ln->req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3503:3: note: place parentheses around the assignment to silence this warning 3503 | RT_EXPORT_WALK(&ln->req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3503:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3523:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3523 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3523:12: note: place parentheses around the assignment to silence this warning 3523 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:3523:12: note: use '==' to turn this assignment into an equality comparison 3523 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:3531:35: warning: '&&' within '||' [-Wlogical-op-parentheses] 3531 | if ((old == new) || old && new && rte_same(old, new)) | ~~ ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3531:35: note: place parentheses around the '&&' expression to silence this warning 3531 | if ((old == new) || old && new && rte_same(old, new)) | ^ | ( ) nest/rt-table.c:3722:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3722 | RT_EXPORT_WALK(&d->req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3722:3: note: place parentheses around the assignment to silence this warning 3722 | RT_EXPORT_WALK(&d->req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3722:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3919:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 3919 | RT_EXPORT_WALK(&t->best_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:3919:3: note: place parentheses around the assignment to silence this warning 3919 | RT_EXPORT_WALK(&t->best_req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:3919:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:4004:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 4004 | 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:4004:3: note: place parentheses around the assignment to silence this warning 4004 | 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:4004: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:4290: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] 4290 | c->def_tables[NET_IP4] = cf_implicit_symbol(c, "master4", SYM_TABLE, table, NULL); | ^~~~~~~~~ ./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:4291: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] 4291 | c->def_tables[NET_IP6] = cf_implicit_symbol(c, "master6", SYM_TABLE, table, NULL); | ^~~~~~~~~ ./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:4398:10: warning: '&&' within '||' [-Wlogical-op-parentheses] 4397 | if ((idest != RTD_UNICAST) || | ~~ 4398 | !lnum && he->nexthop_linkable) | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:4398:10: note: place parentheses around the '&&' expression to silence this warning 4398 | !lnum && he->nexthop_linkable) | ^ | ( ) nest/rt-table.c:4707:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 4707 | 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:4707:3: note: place parentheses around the assignment to silence this warning 4707 | 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:4707: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:4719:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 4719 | 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:4719:3: note: place parentheses around the assignment to silence this warning 4719 | 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:4719: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:4832:8: warning: variable 'total' set but not used [-Wunused-but-set-variable] 4832 | uint total = 0; | ^ nest/rt-table.c:5001: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] 5001 | 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:5185:4: warning: '&&' within '||' [-Wlogical-op-parentheses] 5183 | if (OBSREF_GET(tab->deleted) || | ~~ 5184 | (lfjour_pending_items(&tab->export_best.journal) < tab->cork_threshold.low) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5185 | && (lfjour_pending_items(&tab->export_all.journal) < tab->cork_threshold.low)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5185:4: note: place parentheses around the '&&' expression to silence this warning 5184 | (lfjour_pending_items(&tab->export_best.journal) < tab->cork_threshold.low) | ( 5185 | && (lfjour_pending_items(&tab->export_all.journal) < tab->cork_threshold.low)) | ^ | ) nest/rt-table.c:5268: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] 5268 | 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:5460:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5460 | RT_EXPORT_WALK(&hc->req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5460:3: note: place parentheses around the assignment to silence this warning 5460 | RT_EXPORT_WALK(&hc->req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:5460:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ nest/rt-table.c:5481:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5481 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5481:12: note: place parentheses around the assignment to silence this warning 5481 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | ( ) nest/rt-table.c:5481:12: note: use '==' to turn this assignment into an equality comparison 5481 | rpe = atomic_load_explicit(&rpe->next, memory_order_acquire) ;) | ^ | == nest/rt-table.c:5489:35: warning: '&&' within '||' [-Wlogical-op-parentheses] 5489 | if ((old == new) || old && new && rte_same(old, new)) | ~~ ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ nest/rt-table.c:5489:35: note: place parentheses around the '&&' expression to silence this warning 5489 | if ((old == new) || old && new && rte_same(old, new)) | ^ | ( ) nest/rt-table.c:5630:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5630 | 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:5630:7: note: place parentheses around the assignment to silence this warning 5630 | 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:5630: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:5670:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 5670 | else | ^ nest/rt-table.c:5678:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 5678 | else | ^ nest/rt-table.c:5754:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 5754 | 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:5754:3: note: place parentheses around the assignment to silence this warning 5754 | 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:5754: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:5803:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 5803 | else | ^ 77 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/l3vpn/l3vpn.o -c proto/l3vpn/l3vpn.c In file included from proto/l3vpn/l3vpn.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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:37: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:37: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:37: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:38: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:38: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:38: 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/l3vpn/l3vpn.c:38: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/l3vpn/l3vpn.c:38: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/l3vpn/l3vpn.c:38: In file included from ./nest/protocol.h:224: ./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/l3vpn/l3vpn.c:41: 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/l3vpn/l3vpn.c:238:56: warning: '&&' within '||' [-Wlogical-op-parentheses] 238 | if (!nhad_orig || !mpls_valid_nexthop(nhad_orig) && p->p.vrf) | ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ proto/l3vpn/l3vpn.c:238:56: note: place parentheses around the '&&' expression to silence this warning 238 | if (!nhad_orig || !mpls_valid_nexthop(nhad_orig) && p->p.vrf) | ^ | ( ) proto/l3vpn/l3vpn.c:351: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] 351 | bsprintf(buf, " (%u/%u)", pref, metric); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ proto/l3vpn/l3vpn.c:353: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] 353 | bsprintf(buf, " (%u/?)", pref); | ^~~ ./lib/string.h:18:20: note: passing argument to parameter 'str' here 18 | int bsprintf(char *str, const char *fmt, ...); | ^ 19 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheclang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/ospf/dbdes.o -c proto/ospf/dbdes.c ses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 19 warnings generated. 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 19 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/proto/evpn/evpn.o -c proto/evpn/evpn.c In file included from proto/evpn/evpn.c:40: 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:41: In file included from ./nest/iface.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:41: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:41: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:41: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:42: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:42: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:42: 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/evpn/evpn.c:42: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/evpn/evpn.c:42: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from proto/evpn/evpn.c:42: In file included from ./nest/protocol.h:224: ./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/evpn/evpn.c:45: 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/evpn/evpn.c:55: 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/evpn/evpn.c:744:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 744 | HASH_REMOVE2(p->vlan_tag_hash, VLAN_TAG, p->p.pool, v); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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/evpn/evpn.c:744: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/evpn/evpn.c:744: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/evpn/evpn.c:745:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 745 | HASH_REMOVE2(p->vlan_vid_hash, VLAN_VID, p->p.pool, v); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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/evpn/evpn.c:745: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/evpn/evpn.c:745: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/evpn/evpn.c:860:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 860 | WALK_LIST_DELSAFE(v, v2, old_vlans) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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/evpn/evpn.c:860:3: note: place parentheses around the assignment to silence this warning 860 | WALK_LIST_DELSAFE(v, v2, old_vlans) | ^ | ( ./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/evpn/evpn.c:860: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) | ^ 22 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/bgp/packets.c:17: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == In file included from proto/bgp/packets.c:30: In file included from ./proto/bmp/bmp.h:112: ./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:30: In file included from ./proto/bmp/bmp.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/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:1331:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1331 | if (nhloc = bgp_use_gateway(s)) | ~~~~~~^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:1331:15: note: place parentheses around the assignment to silence this warning 1331 | if (nhloc = bgp_use_gateway(s)) | ^ | ( ) proto/bgp/packets.c:1331:15: note: use '==' to turn this assignment into an equality comparison 1331 | if (nhloc = bgp_use_gateway(s)) | ^ | == proto/bgp/packets.c:2282:12: warning: variable 'ip' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] 2282 | else if (alen == IP6_MAX_PREFIX_LENGTH) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:2288:10: note: uninitialized use occurs here 2288 | return ip; | ^~ proto/bgp/packets.c:2282:8: note: remove the 'if' if its condition is always true 2282 | else if (alen == IP6_MAX_PREFIX_LENGTH) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2283 | ip = ipa_from_ip6(get_ip6(*pos + 1)); | ~ 2284 | else | ~~~~ 2285 | bgp_parse_error(s, 10); /* ? */ | ~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:2279:3: note: variable 'ip' is declared here 2279 | ip_addr ip; | ^ proto/bgp/packets.c:3796: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] 3796 | { 1, 0, "Invalid message header" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3797: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] 3797 | { 1, 1, "Connection not synchronized" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3798: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] 3798 | { 1, 2, "Bad message length" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3799: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] 3799 | { 1, 3, "Bad message type" }, | ^~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3800: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] 3800 | { 2, 0, "Invalid OPEN message" }, | ^~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3801: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] 3801 | { 2, 1, "Unsupported version number" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3802: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] 3802 | { 2, 2, "Bad peer AS" }, | ^~~~~~~~~~~~~ proto/bgp/packets.c:3803: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] 3803 | { 2, 3, "Bad BGP identifier" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3804: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] 3804 | { 2, 4, "Unsupported optional parameter" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3805: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] 3805 | { 2, 5, "Authentication failure" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3806: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] 3806 | { 2, 6, "Unacceptable hold time" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3807: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] 3807 | { 2, 7, "Required capability missing" }, /* [RFC5492] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3808: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] 3808 | { 2, 8, "No supported AFI/SAFI" }, /* This error msg is nonstandard */ | ^~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3809: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] 3809 | { 2,11, "Role mismatch" }, /* From Open Policy, RFC 9234 */ | ^~~~~~~~~~~~~~~ proto/bgp/packets.c:3810: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] 3810 | { 3, 0, "Invalid UPDATE message" }, | ^~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3811: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] 3811 | { 3, 1, "Malformed attribute list" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3812: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] 3812 | { 3, 2, "Unrecognized well-known attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3813: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] 3813 | { 3, 3, "Missing mandatory attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3814: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] 3814 | { 3, 4, "Invalid attribute flags" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3815: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] 3815 | { 3, 5, "Invalid attribute length" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3816: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] 3816 | { 3, 6, "Invalid ORIGIN attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3817: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] 3817 | { 3, 7, "AS routing loop" }, /* Deprecated */ | ^~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3818: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] 3818 | { 3, 8, "Invalid NEXT_HOP attribute" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3819: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] 3819 | { 3, 9, "Optional attribute error" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3820: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] 3820 | { 3, 10, "Invalid network field" }, | ^~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3821: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] 3821 | { 3, 11, "Malformed AS_PATH" }, | ^~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3822: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] 3822 | { 4, 0, "Hold timer expired" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3823: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] 3823 | { 5, 0, "Finite state machine error" }, /* Subcodes are according to [RFC6608] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3824: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] 3824 | { 5, 1, "Unexpected message in OpenSent state" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3825: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] 3825 | { 5, 2, "Unexpected message in OpenConfirm state" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3826: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] 3826 | { 5, 3, "Unexpected message in Established state" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3827: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] 3827 | { 6, 0, "Cease" }, /* Subcodes are according to [RFC4486] */ | ^~~~~~~ proto/bgp/packets.c:3828: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] 3828 | { 6, 1, "Maximum number of prefixes reached" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3829: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] 3829 | { 6, 2, "Administrative shutdown" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3830: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] 3830 | { 6, 3, "Peer de-configured" }, | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3831: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] 3831 | { 6, 4, "Administrative reset" }, | ^~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3832: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] 3832 | { 6, 5, "Connection rejected" }, | ^~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3833: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] 3833 | { 6, 6, "Other configuration change" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3834: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] 3834 | { 6, 7, "Connection collision resolution" }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3835: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] 3835 | { 6, 8, "Out of Resources" }, | ^~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3836: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] 3836 | { 7, 0, "Invalid ROUTE-REFRESH message" }, /* [RFC7313] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3837: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] 3837 | { 7, 1, "Invalid ROUTE-REFRESH message length" }, /* [RFC7313] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3838: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] 3838 | { 8, 0, "Send hold timer expired" }, /* [RFC9687] */ | ^~~~~~~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3857: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] 3857 | return bgp_msg_table[i].msg; | ^~~~~~~~~~~~~~~~~~~~ proto/bgp/packets.c:3884: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] 3884 | proto_set_message(&p->p, msg, msg_len); | ^~~ ./nest/protocol.h:251:47: note: passing argument to parameter 'msg' here 251 | void proto_set_message(struct proto *p, char *msg, int len); | ^ proto/bgp/packets.c:3885: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] 3885 | *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:3908: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] 3908 | 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:3914: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] 3914 | 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:3928: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] 3928 | 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:3933: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] 3933 | const byte *dsc = bgp_error_dsc(code, subcode); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 19 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 19 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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)) | ^ | == 20 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:87: ./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:126: ./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:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | 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:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | 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:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ 31 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:795:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 795 | 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:795:5: note: place parentheses around the assignment to silence this warning 795 | 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:795: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:914:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 914 | 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:914:3: note: place parentheses around the assignment to silence this warning 914 | 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:914: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:1169:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1169 | 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:1169:5: note: place parentheses around the assignment to silence this warning 1169 | 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:1169: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:1204:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1204 | 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:1204:7: note: place parentheses around the assignment to silence this warning 1204 | 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:1204: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:1389:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1389 | 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:1389:3: note: place parentheses around the assignment to silence this warning 1389 | 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:1389: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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:444:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 444 | 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:444:3: note: place parentheses around the assignment to silence this warning 444 | 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:444: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) | ^ 20 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ 20 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:119: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] 119 | 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:204:32: warning: passing 'u8[8]' (aka 'unsigned char[8]') 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] 204 | if (!password_verify(pass, auth->password, sizeof(auth->password))) | ^~~~~~~~~~~~~~ ./nest/password.h:31:79: note: passing argument to parameter 'p2' here 31 | static inline int password_verify(const struct password_item *p1, const char *p2, uint size) | ^ proto/ospf/packet.c:243: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] 243 | 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:455:55: warning: passing 'uint *' (aka 'unsigned int *') to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign] 455 | 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 */ | ^ 23 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/pipe/pipe.c:37: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:209: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] 209 | 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, ...); | ^ 17 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 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); | ^ 38 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:339: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] 339 | char *buf = ifa->sk->tbuf; | ^ ~~~~~~~~~~~~~ proto/radv/packets.c:405:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 405 | 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:405:5: note: place parentheses around the assignment to silence this warning 405 | 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:405: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) | ^ 18 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ 31 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:186:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 186 | 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:186:3: note: place parentheses around the assignment to silence this warning 186 | 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:186: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:209:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 209 | 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:209:3: note: place parentheses around the assignment to silence this warning 209 | 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:209: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:289:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 289 | RT_EXPORT_WALK(&p->nbr_channel->out_req, u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~ proto/radv/radv.c:289:3: note: place parentheses around the assignment to silence this warning 289 | RT_EXPORT_WALK(&p->nbr_channel->out_req, u) | ^ | ( ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ proto/radv/radv.c:289:3: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:277:10: note: expanded from macro 'RT_EXPORT_WALK' 277 | _u = rt_export_get(_reader); \ | ^ proto/radv/radv.c:871: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] 871 | strcpy(buf, "Suppressed"); | ^~~ /usr/include/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ proto/radv/radv.c:893: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] 893 | 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); | ^ 21 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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: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: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); | ^ 19 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 21 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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:272:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 272 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ~~~^~~~~ proto/rip/rip.c:272:29: note: place parentheses around the assignment to silence this warning 272 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | ( ) proto/rip/rip.c:272:29: note: use '==' to turn this assignment into an equality comparison 272 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | == proto/rip/rip.c:319:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 319 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ~~~^~~~~ proto/rip/rip.c:319:29: note: place parentheses around the assignment to silence this warning 319 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | ( ) proto/rip/rip.c:319:29: note: use '==' to turn this assignment into an equality comparison 319 | for (rp = &en->routes; rt = *rp; rp = &rt->next) | ^ | == proto/rip/rip.c:432:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 432 | 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:432:3: note: place parentheses around the assignment to silence this warning 432 | 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:432: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:951:31: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 951 | for (rp = &en->routes; rt = *rp; /* rp = &rt->next */) | ~~~^~~~~ proto/rip/rip.c:951:31: note: place parentheses around the assignment to silence this warning 951 | for (rp = &en->routes; rt = *rp; /* rp = &rt->next */) | ^ | ( ) proto/rip/rip.c:951:31: note: use '==' to turn this assignment into an equality comparison 951 | for (rp = &en->routes; rt = *rp; /* rp = &rt->next */) | ^ | == proto/rip/rip.c:1010:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1010 | 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:1010:5: note: place parentheses around the assignment to silence this warning 1010 | 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:1010: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:1262: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] 1262 | 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:1265: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] 1265 | 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:1271: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] 1271 | 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:1313: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] 1313 | 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:1313: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] 1313 | 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:1348: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] 1348 | 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:1348: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] 1348 | 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:1371:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1371 | 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:1371:3: note: place parentheses around the assignment to silence this warning 1371 | 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:1371: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) | ^ 30 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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, ...); | ^ 18 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:247:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 247 | if (fp = alloc_hot_page(fp)) | ~~~^~~~~~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:247:10: note: place parentheses around the assignment to silence this warning 247 | if (fp = alloc_hot_page(fp)) | ^ | ( ) sysdep/unix/alloc.c:247:10: note: use '==' to turn this assignment into an equality comparison 247 | if (fp = alloc_hot_page(fp)) | ^ | == sysdep/unix/alloc.c:261:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 261 | if (fp = alloc_hot_page(fp)) | ~~~^~~~~~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:261:10: note: place parentheses around the assignment to silence this warning 261 | if (fp = alloc_hot_page(fp)) | ^ | ( ) sysdep/unix/alloc.c:261:10: note: use '==' to turn this assignment into an equality comparison 261 | if (fp = alloc_hot_page(fp)) | ^ | == sysdep/unix/alloc.c:247:27: warning: variable 'fp' is uninitialized when used here [-Wuninitialized] 247 | if (fp = alloc_hot_page(fp)) | ^~ sysdep/unix/alloc.c:246:23: note: initialize the variable 'fp' to silence this warning 246 | struct free_page *fp; | ^ | = NULL sysdep/unix/alloc.c:386:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 386 | while (next = atomic_load_explicit(&last->next, memory_order_relaxed)) | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/alloc.c:386:15: note: place parentheses around the assignment to silence this warning 386 | while (next = atomic_load_explicit(&last->next, memory_order_relaxed)) | ^ | ( ) sysdep/unix/alloc.c:386:15: note: use '==' to turn this assignment into an equality comparison 386 | while (next = atomic_load_explicit(&last->next, memory_order_relaxed)) | ^ | == 8 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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) | ^ | == 13 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from proto/static/static.c:40: In file included from ./nest/protocol.h:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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:224: ./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: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/%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:811: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] 811 | 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, ...); | ^ 21 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from sysdep/unix/krt.c:56: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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:1003:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1003 | RT_FEED_WALK(&req, f) | ^~~~~~~~~~~~~~~~~~~~~ ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/krt.c:1003:5: note: place parentheses around the assignment to silence this warning 1003 | RT_FEED_WALK(&req, f) | ^ | ( ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ sysdep/unix/krt.c:1003:5: note: use '==' to turn this assignment into an equality comparison ./nest/route.h:250:44: note: expanded from macro 'RT_FEED_WALK' 250 | for (const struct rt_export_feed *_f; _f = rt_export_next_feed(_feeder, NULL); ) \ | ^ 14 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:87: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:126: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:233:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 233 | l = atomic_load_explicit(pprev, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/log.c:233:9: note: place parentheses around the assignment to silence this warning 233 | l = atomic_load_explicit(pprev, memory_order_acquire); | ^ | ( ) sysdep/unix/log.c:233:9: note: use '==' to turn this assignment into an equality comparison 233 | l = atomic_load_explicit(pprev, memory_order_acquire); | ^ | == sysdep/unix/log.c:324: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] 324 | buf->buf.start = buf->buf.pos = buf->block; | ^ ~~~~~~~~~~ sysdep/unix/log.c:325: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] 325 | buf->buf.end = buf->block + sizeof buf->block; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/log.c:334: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] 334 | int t = tm_format_real_time(buf->buf.pos, buf->buf.end - buf->buf.pos, fmt, current_real_time()); | ^~~~~~~~~~~~ ./lib/timer.h:147:31: note: passing argument to parameter 'x' here 147 | int tm_format_real_time(char *x, size_t max, const char *fmt, btime t); | ^ sysdep/unix/log.c:351: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] 351 | int t = tm_format_real_time(buf->buf.pos, buf->buf.end - buf->buf.pos, fmt, current_real_time()); | ^~~~~~~~~~~~ ./lib/timer.h:147:31: note: passing argument to parameter 'x' here 147 | int tm_format_real_time(char *x, size_t max, const char *fmt, btime t); | ^ sysdep/unix/log.c:620:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 620 | ol = atomic_load_explicit(pprev, memory_order_acquire); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/log.c:620:10: note: place parentheses around the assignment to silence this warning 620 | ol = atomic_load_explicit(pprev, memory_order_acquire); | ^ | ( ) sysdep/unix/log.c:620:10: note: use '==' to turn this assignment into an equality comparison 620 | ol = atomic_load_explicit(pprev, memory_order_acquire); | ^ | == 12 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/sysdep/linux/netlink.o -c sysdep/linux/netlink.c In file included from sysdep/linux/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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/netlink.c:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/netlink.c:19: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/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/linux/netlink.c:19: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from sysdep/linux/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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/netlink.c:19: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/linux/netlink.c:20: In file included from ./nest/protocol.h:224: ./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/linux/netlink.c:883:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] 883 | else | ^ sysdep/linux/netlink.c:1073:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 1073 | else | ^ sysdep/linux/netlink.c:1488:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1488 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1488:12: note: place parentheses around the assignment to silence this warning 1488 | while (h = nl_get_scan()) | ^ | ( ) sysdep/linux/netlink.c:1488:12: note: use '==' to turn this assignment into an equality comparison 1488 | while (h = nl_get_scan()) | ^ | == sysdep/linux/netlink.c:1514:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1514 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1514:12: note: place parentheses around the assignment to silence this warning 1514 | while (h = nl_get_scan()) | ^ | ( ) sysdep/linux/netlink.c:1514:12: note: use '==' to turn this assignment into an equality comparison 1514 | while (h = nl_get_scan()) | ^ | == sysdep/linux/netlink.c:1521:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1521 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1521:12: note: place parentheses around the assignment to silence this warning 1521 | while (h = nl_get_scan()) | ^ | ( ) sysdep/linux/netlink.c:1521:12: note: use '==' to turn this assignment into an equality comparison 1521 | while (h = nl_get_scan()) | ^ | == sysdep/linux/netlink.c:1675:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1675 | else if (ea = ea_find(eattrs, &ea_krt_scope)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1675:15: note: place parentheses around the assignment to silence this warning 1675 | else if (ea = ea_find(eattrs, &ea_krt_scope)) | ^ | ( ) sysdep/linux/netlink.c:1675:15: note: use '==' to turn this assignment into an equality comparison 1675 | else if (ea = ea_find(eattrs, &ea_krt_scope)) | ^ | == sysdep/linux/netlink.c:1682:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1682 | if (ea = ea_find(eattrs, &ea_krt_prefsrc)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1682:10: note: place parentheses around the assignment to silence this warning 1682 | if (ea = ea_find(eattrs, &ea_krt_prefsrc)) | ^ | ( ) sysdep/linux/netlink.c:1682:10: note: use '==' to turn this assignment into an equality comparison 1682 | if (ea = ea_find(eattrs, &ea_krt_prefsrc)) | ^ | == sysdep/linux/netlink.c:1685:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1685 | if (ea = ea_find(eattrs, &ea_krt_realm)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1685:10: note: place parentheses around the assignment to silence this warning 1685 | if (ea = ea_find(eattrs, &ea_krt_realm)) | ^ | ( ) sysdep/linux/netlink.c:1685:10: note: use '==' to turn this assignment into an equality comparison 1685 | if (ea = ea_find(eattrs, &ea_krt_realm)) | ^ | == sysdep/linux/netlink.c:1694:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1694 | while (ea = ea_walk(&ews, ea_krt_metrics[0].id, KRT_METRICS_MAX)) | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/linux/netlink.c:1694:13: note: place parentheses around the assignment to silence this warning 1694 | while (ea = ea_walk(&ews, ea_krt_metrics[0].id, KRT_METRICS_MAX)) | ^ | ( ) sysdep/linux/netlink.c:1694:13: note: use '==' to turn this assignment into an equality comparison 1694 | while (ea = ea_walk(&ews, ea_krt_metrics[0].id, KRT_METRICS_MAX)) | ^ | == sysdep/linux/netlink.c:1700: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] 1700 | cc_algo = ea->u.ptr->data; | ^ ~~~~~~~~~~~~~~~ sysdep/linux/netlink.c:2101:4: warning: add explicit braces to avoid dangling else [-Wdangling-else] 2101 | else | ^ sysdep/linux/netlink.c:2134:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2134 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/linux/netlink.c:2134:12: note: place parentheses around the assignment to silence this warning 2134 | while (h = nl_get_scan()) | ^ | ( ) sysdep/linux/netlink.c:2134:12: note: use '==' to turn this assignment into an equality comparison 2134 | while (h = nl_get_scan()) | ^ | == sysdep/linux/netlink.c:2403:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2403 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/linux/netlink.c:2403:12: note: place parentheses around the assignment to silence this warning 2403 | while (h = nl_get_scan()) | ^ | ( ) sysdep/linux/netlink.c:2403:12: note: use '==' to turn this assignment into an equality comparison 2403 | while (h = nl_get_scan()) | ^ | == sysdep/linux/netlink.c:2571:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2571 | while (h = nl_get_scan()) | ~~^~~~~~~~~~~~~~~ sysdep/linux/netlink.c:2571:12: note: place parentheses around the assignment to silence this warning 2571 | while (h = nl_get_scan()) | ^ | ( ) sysdep/linux/netlink.c:2571:12: note: use '==' to turn this assignment into an equality comparison 2571 | while (h = nl_get_scan()) | ^ | == sysdep/linux/netlink.c:2819:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2819 | 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/linux/netlink.c:2819: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/linux/netlink.c:2819: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) \ | ^ sysdep/linux/netlink.c:2869:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2869 | HASH_REMOVE2(nl_bridge_map, BRH, 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/linux/netlink.c:2869: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/linux/netlink.c:2869: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) \ | ^ 29 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:38: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: ./lib/string.h:50:9: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] 50 | char *s = strrchr(str, '/'); | ^ ~~~~~~~~~~~~~~~~~ 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:87: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:126: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:53: ./sysdep/linux/sysio.h:534:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] 534 | else | ^ sysdep/unix/io.c:209:5: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] 209 | write(r->fd, buf, sz); | ^~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io.c:257:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] 257 | else | ^ sysdep/unix/io.c:827:58: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 827 | if (getsockopt(s->fd, SOL_SOCKET, SO_RCVBUF, &oldsize, &oldsize_s) < 0) | ^~~~~~~~~~ /usr/include/sys/socket.h:257:32: note: passing argument to parameter '__optlen' here 257 | socklen_t *__restrict __optlen) __THROW; | ^ sysdep/unix/io.c:1428:35: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 1428 | if ((getsockname(s->fd, &sa.sa, &sa_len) < 0) || | ^~~~~~~ /usr/include/sys/socket.h:117:26: note: passing argument to parameter '__len' here 117 | socklen_t *__restrict __len) __THROW; | ^ sysdep/unix/io.c:1454:66: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 1454 | int fd = accept(s->fd, ((type == SK_TCP) ? &rem_sa.sa : NULL), &rem_sa_len); | ^~~~~~~~~~~ /usr/include/sys/socket.h:307:28: note: passing argument to parameter '__addr_len' here 307 | socklen_t *__restrict __addr_len); | ^ sysdep/unix/io.c:1480:38: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 1480 | if ((getsockname(fd, &loc_sa.sa, &loc_sa_len) < 0) || | ^~~~~~~~~~~ /usr/include/sys/socket.h:117:26: note: passing argument to parameter '__len' here 117 | socklen_t *__restrict __len) __THROW; | ^ sysdep/unix/io.c:1791: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] 1791 | s->ttx = ""; /* Force s->ttx != s->tpos */ | ^ ~~ sysdep/unix/io.c:1802: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] 1802 | s->ttx = ""; /* Force s->ttx != s->tpos */ | ^ ~~ sysdep/unix/io.c:2266:7: warning: 'ssh_channel_select' is deprecated [-Wdeprecated-declarations] 2266 | if (ssh_channel_select(rchans, NULL, NULL, &timev) == SSH_EINTR) | ^ /usr/include/libssh/libssh.h:598:1: note: 'ssh_channel_select' has been explicitly marked deprecated here 598 | SSH_DEPRECATED LIBSSH_API int ssh_channel_select(ssh_channel *readchans, ssh_channel *writechans, ssh_channel *exceptchans, struct | ^ /usr/include/libssh/libssh.h:82:40: note: expanded from macro 'SSH_DEPRECATED' 82 | #define SSH_DEPRECATED __attribute__ ((deprecated)) | ^ sysdep/unix/io.c:2444:54: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 2444 | if (getsockopt(s->fd, SOL_SOCKET, SO_ERROR, &se, &sse) < 0) | ^~~~ /usr/include/sys/socket.h:257:32: note: passing argument to parameter '__optlen' here 257 | socklen_t *__restrict __optlen) __THROW; | ^ sysdep/unix/io.c:2653:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2653 | if (t = timers_first(&main_birdloop.time)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io.c:2653:13: note: place parentheses around the assignment to silence this warning 2653 | if (t = timers_first(&main_birdloop.time)) | ^ | ( ) sysdep/unix/io.c:2653:13: note: use '==' to turn this assignment into an equality comparison 2653 | if (t = timers_first(&main_birdloop.time)) | ^ | == 22 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: ./lib/string.h:50:9: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] 50 | char *s = strrchr(str, '/'); | ^ ~~~~~~~~~~~~~~~~~ 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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) | ^ | == 4 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:26: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: ./lib/string.h:50:9: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] 50 | char *s = strrchr(str, '/'); | ^ ~~~~~~~~~~~~~~~~~ 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:224: ./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) | ^ | == sysdep/unix/main.c:140:44: 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] 140 | 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); | ^ In file included from sysdep/unix/main.c:449: ./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) | ^ | == 21 warnings generated. 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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/client/util.o -c client/util.c clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/bits/string_fortified.h:89:66: note: passing argument to parameter '__dest' here 89 | __NTH (strcpy (__fortify_clang_overload_arg (char *, __restrict, __dest), | ^ 4 warnings generated. clang -Iobj -I. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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 ./sysdep/unix/io-loop.h:87: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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 ./sysdep/unix/io-loop.h:126: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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 ./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:32: 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:412:16: 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] 412 | .start = new_info, | ^~~~~~~~ sysdep/unix/io-loop.c:413: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] 413 | .pos = new_info, | ^~~~~~~~ sysdep/unix/io-loop.c:414: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] 414 | .end = new_info + size, | ^~~~~~~~~~~~~~~ In file included from sysdep/unix/io-loop.c:647: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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:691: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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:974:32: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 974 | if (this_thread->busy_active = val) | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ sysdep/unix/io-loop.c:974:32: note: place parentheses around the assignment to silence this warning 974 | if (this_thread->busy_active = val) | ^ | ( ) sysdep/unix/io-loop.c:974:32: note: use '==' to turn this assignment into an equality comparison 974 | if (this_thread->busy_active = val) | ^ | == sysdep/unix/io-loop.c:1249:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1249 | if (e = pthread_attr_init(&thr->thread_attr)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1249:13: note: place parentheses around the assignment to silence this warning 1249 | if (e = pthread_attr_init(&thr->thread_attr)) | ^ | ( ) sysdep/unix/io-loop.c:1249:13: note: use '==' to turn this assignment into an equality comparison 1249 | if (e = pthread_attr_init(&thr->thread_attr)) | ^ | == sysdep/unix/io-loop.c:1257:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1257 | if (e = pthread_attr_setdetachstate(&thr->thread_attr, PTHREAD_CREATE_DETACHED)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1257:13: note: place parentheses around the assignment to silence this warning 1257 | if (e = pthread_attr_setdetachstate(&thr->thread_attr, PTHREAD_CREATE_DETACHED)) | ^ | ( ) sysdep/unix/io-loop.c:1257:13: note: use '==' to turn this assignment into an equality comparison 1257 | if (e = pthread_attr_setdetachstate(&thr->thread_attr, PTHREAD_CREATE_DETACHED)) | ^ | == sysdep/unix/io-loop.c:1260:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 1260 | if (e = pthread_create(&thr->thread_id, &thr->thread_attr, bird_thread_main, thr)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:1260:13: note: place parentheses around the assignment to silence this warning 1260 | if (e = pthread_create(&thr->thread_id, &thr->thread_attr, bird_thread_main, thr)) | ^ | ( ) sysdep/unix/io-loop.c:1260:13: note: use '==' to turn this assignment into an equality comparison 1260 | if (e = pthread_create(&thr->thread_id, &thr->thread_attr, bird_thread_main, thr)) | ^ | == sysdep/unix/io-loop.c:1531: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] 1531 | new_config, "worker", | ^~~~~~~~ ./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:1540: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] 1540 | new_config, "express", | ^~~~~~~~~ ./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:2027:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2027 | while (t = timers_first(&loop->time)) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:2027:12: note: place parentheses around the assignment to silence this warning 2027 | while (t = timers_first(&loop->time)) | ^ | ( ) sysdep/unix/io-loop.c:2027:12: note: use '==' to turn this assignment into an equality comparison 2027 | while (t = timers_first(&loop->time)) | ^ | == sysdep/unix/io-loop.c:2077:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2077 | ltt = atomic_load_explicit(&loop->thread_transition, memory_order_acquire); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sysdep/unix/io-loop.c:2077:11: note: place parentheses around the assignment to silence this warning 2077 | ltt = atomic_load_explicit(&loop->thread_transition, memory_order_acquire); | ^ | ( ) sysdep/unix/io-loop.c:2077:11: note: use '==' to turn this assignment into an equality comparison 2077 | ltt = atomic_load_explicit(&loop->thread_transition, memory_order_acquire); | ^ | == 19 warnings generated. clang -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o birdc obj/client/commands.o obj/client/util.o obj/client/client.o obj/client/birdc.o -lreadline -ltinfo clang -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o birdcl obj/client/commands.o obj/client/util.o obj/client/client.o obj/client/birdcl.o clang -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -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/evpn.o obj/lib/flowspec.o obj/lib/idm.o obj/lib/ip.o obj/lib/islab.o obj/lib/lists.o obj/lib/lockfree.o obj/lib/mac.o obj/lib/md5.o obj/lib/mempool.o obj/lib/mslab.o obj/lib/net.o obj/lib/netindex.o obj/lib/patmatch.o obj/lib/printf.o obj/lib/pubsub.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/aggregator/aggregator.o obj/proto/bfd/bfd.o obj/proto/bfd/packets.o obj/proto/babel/babel.o obj/proto/babel/packets.o obj/proto/bgp/attrs.o obj/proto/bgp/bgp.o obj/proto/bgp/packets.o obj/proto/bmp/bmp.o obj/proto/bridge/bridge.o obj/proto/evpn/evpn.o obj/proto/l3vpn/l3vpn.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/linux/netlink.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 -lssh rm obj/doc/bird.tex obj/doc/prog.tex obj/doc/bird.sgml + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.ZnQSwu + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + '[' /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT ++ dirname /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT + mkdir -p /builddir/build/BUILD/bird-3.3.2-build + mkdir /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT + CFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CFLAGS + CXXFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CXXFLAGS + FFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=clang + export CC + CXX=clang++ + export CXX + cd bird-3.3.2 + /usr/bin/make install DESTDIR=/builddir/build/BUILD/bird-3.3.2-build/BUILDROOT 'INSTALL=/usr/bin/install -p' /usr/bin/install -p -d /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT//usr/bin /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT//etc /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT//run/bird for BIN in bird birdcl birdc ; do \ /usr/bin/install -p ./$BIN /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT//usr/bin/$BIN ; \ done if ! test -f /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT//etc/bird.conf ; then \ /usr/bin/install -p -m 644 ./doc/bird.conf.example /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT//etc/bird.conf ; \ else \ echo "Not overwriting old bird.conf" ; \ fi + install -d /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/var/lib/bird /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/run/bird + install -D -p -m 0644 /builddir/build/SOURCES/bird.service /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/lib/systemd/system/bird.service + install -D -p -m 0644 /builddir/build/SOURCES/bird.tmpfilesd /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/lib/tmpfiles.d/bird.conf + install -D -p -m 0644 /builddir/build/SOURCES/bird.sysusersd /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/lib/sysusers.d/bird.conf + /usr/bin/find-debuginfo -j5 --strict-build-id -m -i --build-id-seed 3.3.2-1.fc46 --unique-debug-suffix -3.3.2-1.fc46.ppc64le --unique-debug-src-base bird-3.3.2-1.fc46.ppc64le --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 --remove-section .gnu.build.attributes -S debugsourcefiles.list /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2 find-debuginfo: starting Extracting debug info from 3 files DWARF-compressing 3 files dwz: ./usr/bin/bird-3.3.2-1.fc46.ppc64le.debug: Unknown debugging section .debug_addr dwz: ./usr/bin/birdc-3.3.2-1.fc46.ppc64le.debug: Unknown debugging section .debug_addr dwz: ./usr/bin/birdcl-3.3.2-1.fc46.ppc64le.debug: Unknown debugging section .debug_addr dwz: Too few files for multifile optimization sepdebugcrcfix: Updated 0 CRC32s, 3 CRC32s did match. Creating .debug symlinks for symlinks to ELF files Copying sources found by 'debugedit -l' to /usr/src/debug/bird-3.3.2-1.fc46.ppc64le find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + COMPRESS='gzip -9 -n' + COMPRESS_EXT=.gz + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j5 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j5 /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT Scanned 48 directories and 236 files, processed 0 inodes, 0 modified (0 replaced + 0 rewritten), 0 unsupported format, 0 errors + /usr/bin/linkdupes --brp /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr Scanned 41 directories and 235 files, considered 235 files, read 0 files, linked 0 files, 0 errors sum of sizes of linked files: 0 bytes Reading /builddir/build/BUILD/bird-3.3.2-build/SPECPARTS/rpm-debuginfo.specpart Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.JWhUdW + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + CFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CFLAGS + CXXFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection ' + export CXXFLAGS + FFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=clang + export CC + CXX=clang++ + export CXX + cd bird-3.3.2 + make test rm -f obj/filter/tree_test.ok obj/filter/trie_test.ok obj/filter/filter_test.ok obj/lib/a-set_test.ok obj/lib/a-path_test.ok obj/lib/attribute_cleanup_test.ok obj/lib/bitmap_test.ok obj/lib/heap_test.ok obj/lib/buffer_test.ok obj/lib/event_test.ok obj/lib/flowspec_test.ok obj/lib/bitops_test.ok obj/lib/patmatch_test.ok obj/lib/fletcher16_test.ok obj/lib/slist_test.ok obj/lib/rt-normalize_test.ok obj/lib/checksum_test.ok obj/lib/lists_test.ok obj/lib/locking_test.ok obj/lib/mac_test.ok obj/lib/ip_test.ok obj/lib/hash_test.ok obj/lib/printf_test.ok obj/lib/rcu_test.ok obj/lib/slab_test.ok obj/lib/mslab_test.ok obj/lib/islab_test.ok obj/lib/tlists_test.ok obj/lib/type_test.ok obj/nest/rt-fib_test.ok obj/sysdep/unix/alloc_test.ok CC -o obj/filter/tree_test.o -c filter/tree_test.c In file included from filter/tree_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: 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/tree_test.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from filter/tree_test.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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 10 warnings generated. CC -o obj/test/birdtest.o -c test/birdtest.c In file included from test/birdtest.c:21: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/birdtest.c:24: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/birdtest.c:568: 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 test/birdtest.c:579: 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) | ^ | == 4 warnings generated. CC -o obj/test/bt-utils.o -c test/bt-utils.c In file included from test/bt-utils.c:13: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:17: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:17: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c: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 test/bt-utils.c:17: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from test/bt-utils.c:17: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:17: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:17: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:17: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == In file included from test/bt-utils.c:18: In file included from ./nest/protocol.h:224: ./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) | ^ | == test/bt-utils.c:165:23: 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] 165 | bt_config_parse_pos = cfg_str; | ^ ~~~~~~~ 14 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/filter/tree_test obj/filter/tree_test.o ... -lssh CC -o obj/filter/trie_test.o -c filter/trie_test.c In file included from filter/trie_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: 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/trie_test.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from filter/trie_test.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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/trie_test.c:318:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 318 | while (pxlist = read_prefix_list(f, 0, plus)) | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ filter/trie_test.c:318:17: note: place parentheses around the assignment to silence this warning 318 | while (pxlist = read_prefix_list(f, 0, plus)) | ^ | ( ) filter/trie_test.c:318:17: note: use '==' to turn this assignment into an equality comparison 318 | while (pxlist = read_prefix_list(f, 0, plus)) | ^ | == 11 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/filter/trie_test obj/filter/trie_test.o ... -lssh CC -o obj/filter/filter_test.o -c filter/filter_test.c In file included from filter/filter_test.c:16: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:16: In file included from ./test/birdtest.h:17: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: ./lib/string.h:50:9: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] 50 | char *s = strrchr(str, '/'); | ^ ~~~~~~~~~~~~~~~~~ In file included from filter/filter_test.c:19: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:19: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:19: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:19: 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/filter_test.c:19: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from filter/filter_test.c:19: 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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:19: 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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:19: 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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:19: In file included from ./filter/filter.h:16: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 11 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/filter/filter_test obj/filter/filter_test.o ... -lssh CC -o obj/lib/a-set_test.o -c lib/a-set_test.c In file included from lib/a-set_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:13: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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_test.c:13: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from lib/a-set_test.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:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.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:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:13: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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_test.c:80:8: warning: initializing 'int *' with an expression of type 'u32 *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] 80 | int *data = int_set_get_data(set_sequence); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/a-set_test.c:110:20: warning: passing 'byte[1000]' (aka 'unsigned char[1000]') 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] 110 | bt_assert(strcmp(buf, "0.0.0.0 0.0.0.1 0.0.0.2 0.0.0.3 0.0.0.4 0.0.0.5 0.0.0.6 0.0.0.7 0.0.0.8 0.0.0.9") == 0); | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-set_test.c:114:20: warning: passing 'byte[1000]' (aka 'unsigned char[1000]') 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] 114 | bt_assert(strcmp(buf, "0.0.0.2 0.0.0.3 0.0.0.4 0.0.0.5 0.0.0.6 0.0.0.7 0.0.0.8 0.0.0.9") == 0); | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-set_test.c:118:20: warning: passing 'byte[1000]' (aka 'unsigned char[1000]') 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] 118 | bt_assert(strcmp(buf, "(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9)") == 0); | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-set_test.c:122:20: warning: passing 'byte[1000]' (aka 'unsigned char[1000]') 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] 122 | bt_assert(strcmp(buf, "0 1 2 3 4 5 6 7 8 9") == 0); | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-set_test.c:202:24: warning: passing 'byte[1000]' (aka 'unsigned char[1000]') 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] 202 | bt_assert_msg(strcmp(buf, "(unknown 0x0, 0, 0) (ro, 0, 1) (rt, 0, 2) (ro, 0, 3) (rt, 0, 4) (ro, 0, 5) (rt, 0, 6) (ro, 0, 7) (rt, 0, 8) (ro, 0, 9)") == 0, | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ 16 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/a-set_test obj/lib/a-set_test.o ... -lssh CC -o obj/lib/a-path_test.o -c lib/a-path_test.c In file included from lib/a-path_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: 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_test.c:12: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from lib/a-path_test.c:12: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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_test.c:85:24: warning: passing 'byte[120]' (aka 'unsigned char[120]') 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] 85 | bt_assert_msg(strcmp(buf, "") == 0, "Buffer(%zu): '%s'", strlen(buf), buf); | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-path_test.c:85:67: warning: passing 'byte[120]' (aka 'unsigned char[120]') 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] 85 | bt_assert_msg(strcmp(buf, "") == 0, "Buffer(%zu): '%s'", strlen(buf), buf); | ^~~ /usr/include/string.h:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ lib/a-path_test.c:88:24: warning: passing 'byte[120]' (aka 'unsigned char[120]') 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] 88 | bt_assert_msg(strcmp(buf, "4294967294 4294967293 4294967292 4294967291 4294967290 4294967289 4294967288 4294967287 4294967286 4294967285") == 0, "Buffer(%zu): '%s'", strlen(buf), buf); | ^~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-path_test.c:88:176: warning: passing 'byte[120]' (aka 'unsigned char[120]') 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] 88 | bt_assert_msg(strcmp(buf, "4294967294 4294967293 4294967292 4294967291 4294967290 4294967289 4294967288 4294967287 4294967286 4294967285") == 0, "Buffer(%zu): '%s'", strlen(buf), buf); | ^~~ /usr/include/string.h:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ lib/a-path_test.c:93:24: warning: passing 'byte[25]' (aka 'unsigned char[25]') 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] 93 | bt_assert_msg(strcmp(buf2, "4294967294 42...") == 0, "Small Buffer(%zu): '%s'", strlen(buf2), buf2); | ^~~~ /usr/include/string.h:171:32: note: passing argument to parameter '__s1' here 171 | extern int strcmp (const char *__s1, const char *__s2) | ^ lib/a-path_test.c:93:90: warning: passing 'byte[25]' (aka 'unsigned char[25]') 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] 93 | bt_assert_msg(strcmp(buf2, "4294967294 42...") == 0, "Small Buffer(%zu): '%s'", strlen(buf2), buf2); | ^~~~ /usr/include/string.h:441:35: note: passing argument to parameter '__s' here 441 | extern size_t strlen (const char *__s) | ^ 16 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/a-path_test obj/lib/a-path_test.o ... -lssh CC -o obj/lib/attribute_cleanup_test.o -c lib/attribute_cleanup_test.c In file included from lib/attribute_cleanup_test.c:10: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/attribute_cleanup_test obj/lib/attribute_cleanup_test.o ... -lssh CC -o obj/lib/bitmap_test.o -c lib/bitmap_test.c In file included from lib/bitmap_test.c:10: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/bitmap_test.c:233:8: warning: variable 'cnt' set but not used [-Wunused-but-set-variable] 233 | uint cnt = 0; | ^ 2 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/bitmap_test obj/lib/bitmap_test.o ... -lssh CC -o obj/lib/heap_test.o -c lib/heap_test.c In file included from lib/heap_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/heap_test obj/lib/heap_test.o ... -lssh CC -o obj/lib/buffer_test.o -c lib/buffer_test.c In file included from lib/buffer_test.c:11: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/buffer_test obj/lib/buffer_test.o ... -lssh CC -o obj/lib/event_test.o -c lib/event_test.c In file included from lib/event_test.c:10: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c: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 lib/event_test.c: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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:17: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:17: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:17: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:18: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:18: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:18: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from lib/event_test.c:18: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 10 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/event_test obj/lib/event_test.o ... -lssh CC -o obj/lib/flowspec_test.o -c lib/flowspec_test.c In file included from lib/flowspec_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/flowspec_test obj/lib/flowspec_test.o ... -lssh CC -o obj/lib/bitops_test.o -c lib/bitops_test.c In file included from lib/bitops_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/bitops_test obj/lib/bitops_test.o ... -lssh CC -o obj/lib/patmatch_test.o -c lib/patmatch_test.c In file included from lib/patmatch_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/patmatch_test.c:54:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 54 | .pattern = "", | ^~ lib/patmatch_test.c:55:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 55 | .data = "", | ^~ lib/patmatch_test.c:61:13: 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] 61 | .pattern = "*", | ^~~ lib/patmatch_test.c:62:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 62 | .data = "", | ^~ lib/patmatch_test.c:68:13: 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] 68 | .pattern = "\\*", | ^~~~~ lib/patmatch_test.c:69:13: 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] 69 | .data = "*", | ^~~ lib/patmatch_test.c:75:13: 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] 75 | .pattern = "\\*", | ^~~~~ lib/patmatch_test.c:76:13: 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] 76 | .data = "a", | ^~~ lib/patmatch_test.c:82:13: 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] 82 | .pattern = "?", | ^~~ lib/patmatch_test.c:83:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 83 | .data = "", | ^~ lib/patmatch_test.c:89:13: 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] 89 | .pattern = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:90:13: 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] 90 | .data = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:96:13: 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] 96 | .pattern = "??????????????????????????", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:97:13: 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] 97 | .data = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:103:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[29]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 103 | .pattern = "*abcdefghijklmnopqrstuvwxyz*", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:104:14: 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] 104 | .data = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:110:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[26]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 110 | .pattern = "ab?defg*jklmnop*stu*wxy*z", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:111:13: 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] 111 | .data = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:117:13: 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] 117 | .pattern = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:118:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[26]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 118 | .data = "abcdefghijklmnopqrtuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:124:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[26]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 124 | .pattern = "abcdefghijklmnopqr?uvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:125:13: 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] 125 | .data = "abcdefghijklmnopqrstuvwxyz", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:131:13: warning: initializing 'byte *' (aka 'unsigned char *') with an expression of type 'char[29]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign] 131 | .pattern = "aa*aaaaa?aaaaaaaaaaaaaaaaaaa", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/patmatch_test.c:132:13: 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] 132 | .data = "aaaaaaaaaaaaaaaaaaaaaaaaaa", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/patmatch_test obj/lib/patmatch_test.o ... -lssh CC -o obj/lib/fletcher16_test.o -c lib/fletcher16_test.c In file included from lib/fletcher16_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/fletcher16_test.c:64:28: warning: passing 'const char *' to parameter of type 'const u8 *' (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] 64 | fletcher16_update(&ctxt, in, strlen(in)); | ^~ ./lib/fletcher16.h:59:61: note: passing argument to parameter 'buf' here 59 | fletcher16_update(struct fletcher16_context *ctx, const u8* buf, int len) | ^ lib/fletcher16_test.c:82:28: warning: passing 'const char *' to parameter of type 'const u8 *' (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] 82 | fletcher16_update(&ctxt, in, len); | ^~ ./lib/fletcher16.h:59:61: note: passing argument to parameter 'buf' here 59 | fletcher16_update(struct fletcher16_context *ctx, const u8* buf, int len) | ^ 3 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/fletcher16_test obj/lib/fletcher16_test.o ... -lssh CC -o obj/lib/slist_test.o -c lib/slist_test.c In file included from lib/slist_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/slist_test.c:359:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 359 | WALK_SLIST_DELSAFE(node,node_next, lst) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ~~~^~~~~~~~~~~~~~ lib/slist_test.c:359:3: note: place parentheses around the assignment to silence this warning 359 | WALK_SLIST_DELSAFE(node,node_next, lst) | ^ | ( ./lib/slists.h:76:28: note: expanded from macro 'WALK_SLIST_DELSAFE' 76 | for(n=SHEAD(list); nxt=SNODE_NEXT(n); n=(void *) nxt) | ^ lib/slist_test.c:359: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) | ^ 2 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/slist_test obj/lib/slist_test.o ... -lssh CC -o obj/lib/rt-normalize_test.o -c lib/rt-normalize_test.c In file included from lib/rt-normalize_test.c:1: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: 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/rt-normalize_test.c:2: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from lib/rt-normalize_test.c:2: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/rt-normalize_test.c:2: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112:29: note: use '==' to turn this assignment into an equality comparison 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | == 10 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/rt-normalize_test obj/lib/rt-normalize_test.o ... -lssh CC -o obj/lib/checksum_test.o -c lib/checksum_test.c In file included from lib/checksum_test.c:11: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/checksum_test obj/lib/checksum_test.o ... -lssh CC -o obj/lib/lists_test.o -c lib/lists_test.c In file included from lib/lists_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/lists_test obj/lib/lists_test.o ... -lssh CC -o obj/lib/locking_test.o -c lib/locking_test.c In file included from lib/locking_test.c:1: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/locking_test obj/lib/locking_test.o ... -lssh CC -o obj/lib/mac_test.o -c lib/mac_test.c In file included from lib/mac_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/mac_test.c:34:1: 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] 34 | define_test_hash_fn(md5, ALG_MD5) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mac_test.c:25:20: note: expanded from macro 'define_test_hash_fn' 25 | mac_update(&ctx, in, strlen(in)); \ | ^~ ./lib/mac.h:118:68: note: passing argument to parameter 'data' here 118 | static inline void mac_update(struct mac_context *ctx, const byte *data, uint datalen) | ^ lib/mac_test.c:35:1: 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] 35 | define_test_hash_fn(sha1, ALG_SHA1) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mac_test.c:25:20: note: expanded from macro 'define_test_hash_fn' 25 | mac_update(&ctx, in, strlen(in)); \ | ^~ ./lib/mac.h:118:68: note: passing argument to parameter 'data' here 118 | static inline void mac_update(struct mac_context *ctx, const byte *data, uint datalen) | ^ lib/mac_test.c:36:1: 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] 36 | define_test_hash_fn(sha224, ALG_SHA224) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mac_test.c:25:20: note: expanded from macro 'define_test_hash_fn' 25 | mac_update(&ctx, in, strlen(in)); \ | ^~ ./lib/mac.h:118:68: note: passing argument to parameter 'data' here 118 | static inline void mac_update(struct mac_context *ctx, const byte *data, uint datalen) | ^ lib/mac_test.c:37:1: 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] 37 | define_test_hash_fn(sha256, ALG_SHA256) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mac_test.c:25:20: note: expanded from macro 'define_test_hash_fn' 25 | mac_update(&ctx, in, strlen(in)); \ | ^~ ./lib/mac.h:118:68: note: passing argument to parameter 'data' here 118 | static inline void mac_update(struct mac_context *ctx, const byte *data, uint datalen) | ^ lib/mac_test.c:38:1: 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] 38 | define_test_hash_fn(sha384, ALG_SHA384) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mac_test.c:25:20: note: expanded from macro 'define_test_hash_fn' 25 | mac_update(&ctx, in, strlen(in)); \ | ^~ ./lib/mac.h:118:68: note: passing argument to parameter 'data' here 118 | static inline void mac_update(struct mac_context *ctx, const byte *data, uint datalen) | ^ lib/mac_test.c:39:1: 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] 39 | define_test_hash_fn(sha512, ALG_SHA512) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/mac_test.c:25:20: note: expanded from macro 'define_test_hash_fn' 25 | mac_update(&ctx, in, strlen(in)); \ | ^~ ./lib/mac.h:118:68: note: passing argument to parameter 'data' here 118 | static inline void mac_update(struct mac_context *ctx, const byte *data, uint datalen) | ^ lib/mac_test.c:1077:25: 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] 1077 | sha256_update(&ctx_a, str_a, strlen(str_a)); | ^~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1083:25: 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] 1083 | sha256_update(&ctx_b, str_b1, strlen(str_b1)); | ^~~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1084:25: 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] 1084 | sha256_update(&ctx_b, str_b2, strlen(str_b2)); | ^~~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1085:25: 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] 1085 | sha256_update(&ctx_b, str_b3, strlen(str_b3)); | ^~~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1086:25: 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] 1086 | sha256_update(&ctx_b, str_b4, strlen(str_b4)); | ^~~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1087:25: 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] 1087 | sha256_update(&ctx_b, str_b5, strlen(str_b5)); | ^~~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1088:25: 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] 1088 | sha256_update(&ctx_b, str_b6, strlen(str_b6)); | ^~~~~~ ./lib/sha256.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha256_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1115:25: 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] 1115 | sha512_update(&ctx_a, str_a, strlen(str_a)); | ^~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1121:25: 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] 1121 | sha512_update(&ctx_b, str_b1, strlen(str_b1)); | ^~~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1122:25: 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] 1122 | sha512_update(&ctx_b, str_b2, strlen(str_b2)); | ^~~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1123:25: 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] 1123 | sha512_update(&ctx_b, str_b3, strlen(str_b3)); | ^~~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1124:25: 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] 1124 | sha512_update(&ctx_b, str_b4, strlen(str_b4)); | ^~~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1125:25: 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] 1125 | sha512_update(&ctx_b, str_b5, strlen(str_b5)); | ^~~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ lib/mac_test.c:1126:25: 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] 1126 | sha512_update(&ctx_b, str_b6, strlen(str_b6)); | ^~~~~~ ./lib/sha512.h:42:58: note: passing argument to parameter 'buf' here 42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); | ^ 21 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/mac_test obj/lib/mac_test.o ... -lssh CC -o obj/lib/ip_test.o -c lib/ip_test.c In file included from lib/ip_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/ip_test obj/lib/ip_test.o ... -lssh CC -o obj/lib/hash_test.o -c lib/hash_test.c In file included from lib/hash_test.c:11: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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/hash_test.c:206:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 206 | HASH_DELETE(hash, TEST, n->key); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ~~~^~~~~~ lib/hash_test.c:206:5: note: place parentheses around the assignment to silence this warning ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ^ lib/hash_test.c:206:5: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ^ lib/hash_test.c:223:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 223 | HASH_REMOVE(hash, TEST, n); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:89:12: note: expanded from macro 'HASH_REMOVE' 89 | if (_n = *_nn) \ | ~~~^~~~~~ lib/hash_test.c:223:5: 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) \ | ^ lib/hash_test.c:223:5: 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) \ | ^ lib/hash_test.c:240:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 240 | HASH_DELETE2(hash, TEST, my_pool, n->key); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:164:24: note: expanded from macro 'HASH_DELETE2' 164 | HASH_TYPE(v) *_n = HASH_DELETE(v, id, key); \ | ^~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ~~~^~~~~~ lib/hash_test.c:240:5: note: place parentheses around the assignment to silence this warning ./lib/hash.h:164:24: note: expanded from macro 'HASH_DELETE2' 164 | HASH_TYPE(v) *_n = HASH_DELETE(v, id, key); \ | ^ ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ^ lib/hash_test.c:240:5: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:164:24: note: expanded from macro 'HASH_DELETE2' 164 | HASH_TYPE(v) *_n = HASH_DELETE(v, id, key); \ | ^ ./lib/hash.h:76:12: note: expanded from macro 'HASH_DELETE' 76 | if (_n = *_nn) \ | ^ lib/hash_test.c:257:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 257 | HASH_REMOVE2(hash, TEST, my_pool, n); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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) \ | ~~~^~~~~~ lib/hash_test.c:257: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) \ | ^ lib/hash_test.c:257: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) \ | ^ lib/hash_test.c:277:3: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 277 | HASH_WALK_FILTER(hash, next, n, m) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:210:34: note: expanded from macro 'HASH_WALK_FILTER' 210 | for (nn = (v).data + _i; n = *nn; \ | ~~^~~~~ lib/hash_test.c:277:3: note: place parentheses around the assignment to silence this warning 277 | HASH_WALK_FILTER(hash, next, n, m) | ^ | ( ./lib/hash.h:210:34: note: expanded from macro 'HASH_WALK_FILTER' 210 | for (nn = (v).data + _i; n = *nn; \ | ^ lib/hash_test.c:277: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; \ | ^ lib/hash_test.c:340:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 340 | if (step < 0) SPINHASH_REHASH_DOWN(v, ST, struct st_node, -step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:473:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 473 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ lib/hash_test.c:340:19: note: place parentheses around the assignment to silence this warning ./lib/hash.h:473:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 473 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/hash_test.c:340:19: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:473:21: note: expanded from macro 'SPINHASH_REHASH_DOWN' 473 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/hash_test.c:341:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 341 | if (step > 0) SPINHASH_REHASH_UP (v, ST, struct st_node, step); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/hash.h:449:21: note: expanded from macro 'SPINHASH_REHASH_UP' 449 | for (type *n; n = _cur->block[i].data; ) { \ | ~~^~~~~~~~~~~~~~~~~~~~~ lib/hash_test.c:341:19: note: place parentheses around the assignment to silence this warning ./lib/hash.h:449:21: note: expanded from macro 'SPINHASH_REHASH_UP' 449 | for (type *n; n = _cur->block[i].data; ) { \ | ^ lib/hash_test.c:341:19: note: use '==' to turn this assignment into an equality comparison ./lib/hash.h:449:21: note: expanded from macro 'SPINHASH_REHASH_UP' 449 | for (type *n; n = _cur->block[i].data; ) { \ | ^ 8 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/hash_test obj/lib/hash_test.o ... -lssh CC -o obj/lib/printf_test.o -c lib/printf_test.c In file included from lib/printf_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/printf_test obj/lib/printf_test.o ... -lssh CC -o obj/lib/rcu_test.o -c lib/rcu_test.c In file included from lib/rcu_test.c:10: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:13: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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_test.c:46:4: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 46 | b = atomic_load_explicit(bp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu_test.c:46:4: note: place parentheses around the assignment to silence this warning 46 | b = atomic_load_explicit(bp, memory_order_acquire); | ^ | ( ) lib/rcu_test.c:46:4: note: use '==' to turn this assignment into an equality comparison 46 | b = atomic_load_explicit(bp, memory_order_acquire); | ^ | == lib/rcu_test.c:118:4: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 118 | b = atomic_load_explicit(bp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu_test.c:118:4: note: place parentheses around the assignment to silence this warning 118 | b = atomic_load_explicit(bp, memory_order_acquire); | ^ | ( ) lib/rcu_test.c:118:4: note: use '==' to turn this assignment into an equality comparison 118 | b = atomic_load_explicit(bp, memory_order_acquire); | ^ | == lib/rcu_test.c:144:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 144 | b = atomic_load_explicit(bp, memory_order_acquire); | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/rcu_test.c:144:9: note: place parentheses around the assignment to silence this warning 144 | b = atomic_load_explicit(bp, memory_order_acquire); | ^ | ( ) lib/rcu_test.c:144:9: note: use '==' to turn this assignment into an equality comparison 144 | b = atomic_load_explicit(bp, memory_order_acquire); | ^ | == 5 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/rcu_test obj/lib/rcu_test.o ... -lssh CC -o obj/lib/slab_test.o -c lib/slab_test.c In file included from lib/slab_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/slab_test obj/lib/slab_test.o ... -lssh CC -o obj/lib/mslab_test.o -c lib/mslab_test.c In file included from lib/mslab_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/mslab_test.c:14: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/mslab_test obj/lib/mslab_test.o ... -lssh CC -o obj/lib/islab_test.o -c lib/islab_test.c In file included from lib/islab_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/islab_test obj/lib/islab_test.o ... -lssh CC -o obj/lib/tlists_test.o -c lib/tlists_test.c In file included from lib/tlists_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/tlists_test.c:24: ./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) | ^ | == 4 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/tlists_test obj/lib/tlists_test.o ... -lssh CC -o obj/lib/type_test.o -c lib/type_test.c In file included from lib/type_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/type_test.c:10: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from lib/type_test.c:11: In file included from ./lib/route.h:20: In file included from ./lib/lockfree.h:13: In file included from ./lib/defer.h:21: In file included from ./lib/io-loop.h:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/type_test.c:11: In file included from ./lib/route.h:20: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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/type_test.c:11: In file included from ./lib/route.h:20: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/lib/type_test obj/lib/type_test.o ... -lssh CC -o obj/nest/rt-fib_test.o -c nest/rt-fib_test.c In file included from nest/rt-fib_test.c:9: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: 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:131: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:198: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:15: In file included from ./lib/lockfree.h:223: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: 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_test.c:12: In file included from ./nest/route.h:21: In file included from ./lib/type.h:13: ./lib/attrs.h:46:31: warning: '&&' within '||' [-Wlogical-op-parentheses] 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ~~ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./lib/attrs.h:46:31: note: place parentheses around the '&&' expression to silence this warning 46 | { return (!a && !b) || a && b && (a->length == b->length && !memcmp(a->data, b->data, a->length)); } | ^ | ( ) In file included from nest/rt-fib_test.c:12: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:171: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:238: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:29: In file included from ./filter/data.h:15: In file included from ./nest/iface.h:261: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h: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_test.c:12: In file included from ./nest/route.h:192: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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_test.c:110:5: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 110 | FIB_WALK(&f, struct test_node, tn) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./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) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ nest/rt-fib_test.c:110:5: note: place parentheses around the assignment to silence this warning 110 | FIB_WALK(&f, struct test_node, tn) | ^ | ( ./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) | ^ nest/rt-fib_test.c:110: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) | ^ 11 warnings generated. LD -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/nest/rt-fib_test obj/nest/rt-fib_test.o ... -lssh CC -o obj/sysdep/unix/alloc_test.o -c sysdep/unix/alloc_test.c In file included from sysdep/unix/alloc_test.c:10: In file included from ./test/birdtest.h: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:39: ./lib/tlists.h:112:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->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 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -pthread -o obj/sysdep/unix/alloc_test obj/sysdep/unix/alloc_test.o ... -lssh obj/filter/tree_test 0.154601275s [ OK ] obj/filter/trie_test 2.172916862s [ OK ] obj/filter/filter_test 1.597724242s [ OK ] obj/lib/a-set_test 0.004791498s [ OK ] obj/lib/a-path_test 0.093716426s [ OK ] obj/lib/attribute_cleanup_test 0.000960844s [ OK ] obj/lib/bitmap_test 2.489675515s [ OK ] obj/lib/heap_test 0.026237732s [ OK ] obj/lib/buffer_test 0.003242947s [ OK ] obj/lib/event_test 0.001956109s [ OK ] obj/lib/flowspec_test 0.007784707s [ OK ] obj/lib/bitops_test 0.003913525s [ OK ] obj/lib/patmatch_test 0.000948100s [ OK ] obj/lib/fletcher16_test 0.001514990s [ OK ] obj/lib/slist_test 0.022051836s [ OK ] obj/lib/rt-normalize_test 0.002836581s [ OK ] obj/lib/checksum_test 0.002653692s [ OK ] obj/lib/lists_test 0.003682701s [ OK ] obj/lib/locking_test 1.454283678s [ OK ] obj/lib/mac_test 0.038431992s [ OK ] obj/lib/ip_test 0.004709775s [ OK ] obj/lib/hash_test 0.500387879s [ OK ] obj/lib/printf_test 0.002414561s [ OK ] obj/lib/rcu_test 0.811047555s [ OK ] obj/lib/slab_test 0.386446002s [ OK ] obj/lib/mslab_test 0.638338932s [ OK ] obj/lib/islab_test 0.798509798s [ OK ] obj/lib/tlists_test 0.002928166s [ OK ] obj/lib/type_test 0.001062399s [ OK ] obj/nest/rt-fib_test 5.700521738s [ OK ] obj/sysdep/unix/alloc_test 6.847780869s [ OK ] + RPM_EC=0 ++ jobs -p + exit 0 Processing files: bird-3.3.2-1.fc46.ppc64le Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.Ol2osb + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + cd bird-3.3.2 + DOCDIR=/builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/NEWS /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/README /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird + RPM_EC=0 ++ jobs -p + exit 0 Provides: bird = 3.3.2-1.fc46 bird(ppc-64) = 3.3.2-1.fc46 bird6 = 3.3.2-1.fc46 config(bird) = 3.3.2-1.fc46 group(bird) user(bird) = dSBiaXJkIC0gIkJJUkQgZGFlbW9uIHVzZXIiIC92YXIvbGliL2JpcmQgLQAA Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(pre): /bin/sh group(bird) user(bird) Requires(post): /bin/sh systemd Requires(preun): /bin/sh systemd Requires(postun): /bin/sh group(bird) systemd user(bird) Requires: filesystem(unmerged-sbin-symlinks) libc.so.6()(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.25)(64bit) libc.so.6(GLIBC_2.27)(64bit) libc.so.6(GLIBC_2.32)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.34)(64bit) libc.so.6(GLIBC_2.38)(64bit) libc.so.6(GLIBC_ABI_DT_RELR)(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libreadline.so.8()(64bit) libssh.so.4()(64bit) libssh.so.4(LIBSSH_4_5_0)(64bit) libtinfo.so.6()(64bit) rtld(GNU_HASH) Obsoletes: bird-sysvinit bird6 < 2.0.2-1 Processing files: bird-doc-3.3.2-1.fc46.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.BlZ9S2 + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + cd bird-3.3.2 + DOCDIR=/builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/NEWS /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/README /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/bird.conf.example /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/doc/bird.conf.example2 /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-1.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-2.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-3.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-4.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-5.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-6.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird-7.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/bird.pdf /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-1.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-2.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-3.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-4.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-5.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-6.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-7.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog-8.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog.html /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + cp -pr /builddir/build/BUILD/bird-3.3.2-build/bird-3.3.2/obj/doc/prog.pdf /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT/usr/share/doc/bird-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: bird-doc = 3.3.2-1.fc46 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: bird-debugsource-3.3.2-1.fc46.ppc64le Provides: bird-debugsource = 3.3.2-1.fc46 bird-debugsource(ppc-64) = 3.3.2-1.fc46 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: bird-debuginfo-3.3.2-1.fc46.ppc64le Provides: bird-debuginfo = 3.3.2-1.fc46 bird-debuginfo(ppc-64) = 3.3.2-1.fc46 debuginfo(build-id) = 4a15fe4f56a1e2e264bced0c2613726d38e8456a debuginfo(build-id) = 5ad699c18f160fa3bdcf482c7f72d5ef5682ddfb debuginfo(build-id) = e4b480cce0ed260f0c9b83cde1af6d6743430c5b Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: bird-debugsource(ppc-64) = 3.3.2-1.fc46 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILD/bird-3.3.2-build/BUILDROOT Wrote: /builddir/build/RPMS/bird-doc-3.3.2-1.fc46.noarch.rpm Wrote: /builddir/build/RPMS/bird-3.3.2-1.fc46.ppc64le.rpm Wrote: /builddir/build/RPMS/bird-debugsource-3.3.2-1.fc46.ppc64le.rpm Wrote: /builddir/build/RPMS/bird-debuginfo-3.3.2-1.fc46.ppc64le.rpm Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.0Fa5At + umask 022 + cd /builddir/build/BUILD/bird-3.3.2-build + test -d /builddir/build/BUILD/bird-3.3.2-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /builddir/build/BUILD/bird-3.3.2-build + rm -rf /builddir/build/BUILD/bird-3.3.2-build + RPM_EC=0 ++ jobs -p + exit 0 RPM build warnings: line 27: It's not recommended to have unversioned Obsoletes: Obsoletes: bird-sysvinit Finish: rpmbuild bird-3.3.2-1.fc46.src.rpm Finish: build phase for bird-3.3.2-1.fc46.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-ppc64le-1788245774.154554/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names INFO: Done(/var/lib/copr-rpmbuild/results/bird-3.3.2-1.fc46.src.rpm) Config(child) 9 minutes 11 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running RPMResults tool Package info: { "packages": [ { "name": "bird-doc", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "noarch" }, { "name": "bird-debugsource", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "ppc64le" }, { "name": "bird", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "src" }, { "name": "bird", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "ppc64le" }, { "name": "bird-debuginfo", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "ppc64le" } ] } RPMResults finished