Warning: Permanently added '52.200.85.240' (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/11058819-fedora-rawhide-x86_64 --chroot fedora-rawhide-x86_64 Version: 1.10 PID: 28386 Logging PID: 28388 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 11058819, 'buildroot_pkgs': ['fedora-clang-default-cc'], 'chroot': 'fedora-rawhide-x86_64', '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-x86_64/', '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-x86_64/', '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-20260928/fedora-rawhide-x86_64/', 'id': 'copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928', 'module_hotfixes': True, 'name': 'Additional repo copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928', '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': '11058819-fedora-rawhide-x86_64', 'timeout': 90000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': ['toolchain_clang', 'clang_lto']} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/@fedora-llvm-team/clang-monthly-fedora-rebuild/bird /var/lib/copr-rpmbuild/workspace/workdir-tfi7qbq1/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-tfi7qbq1/bird', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-tfi7qbq1/bird'... Running: git checkout e680563d1295f6e811e335aa0ac0d9f1307a1d3d -- cmd: ['git', 'checkout', 'e680563d1295f6e811e335aa0ac0d9f1307a1d3d', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-tfi7qbq1/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-tfi7qbq1/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 100 2.73M 100 2.73M 0 0 23.82M 0 0 INFO: Reading stdout from command: md5sum bird-3.3.2.tar.gz tail: /var/lib/copr-rpmbuild/main.log: file truncated Running (timeout=90000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-tfi7qbq1/bird/bird.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-tfi7qbq1/bird --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1790845717.798376 -r /var/lib/copr-rpmbuild/results/configs/child.cfg --without toolchain_clang --without 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-tfi7qbq1/bird/bird.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-tfi7qbq1/bird --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1790845717.798376 -r /var/lib/copr-rpmbuild/results/configs/child.cfg --without toolchain_clang --without 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-tfi7qbq1/bird/bird.spec) Config(fedora-rawhide-x86_64) 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-x86_64-bootstrap-1790845717.798376/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-8d9b8d68-09c9-4862-8df3-edeba4f695cb INFO: Checking that f302ae09c5da88a921a2279f1716b78a40453a136311e1bc90339822f97dd102 image matches host's architecture INFO: Copy content of container f302ae09c5da88a921a2279f1716b78a40453a136311e1bc90339822f97dd102 to /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1790845717.798376/root INFO: mounting f302ae09c5da88a921a2279f1716b78a40453a136311e1bc90339822f97dd102 with podman image mount INFO: image f302ae09c5da88a921a2279f1716b78a40453a136311e1bc90339822f97dd102 as /var/lib/containers/storage/overlay/1d1ad910df2ed4d61ba1e22d635a40fe26ed19598464fab648317385c585d8e1/merged INFO: umounting image f302ae09c5da88a921a2279f1716b78a40453a136311e1bc90339822f97dd102 (/var/lib/containers/storage/overlay/1d1ad910df2ed4d61ba1e22d635a40fe26ed19598464fab648317385c585d8e1/merged) with podman image umount INFO: Removing image mock-bootstrap-8d9b8d68-09c9-4862-8df3-edeba4f695cb 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-x86_64-1790845717.798376/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.x86_64 rpm-sequoia-1.10.3-1.fc46.x86_64 dnf5-5.4.6.0-1.fc46.x86_64 dnf5-plugins-5.4.6.0-1.fc46.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: fedora 100% | 126.9 KiB/s | 24.5 KiB | 00m00s Additional repo copr_tstellar_fedora_c 100% | 10.8 KiB/s | 1.5 KiB | 00m00s Additional repo copr_fedora_llvm_team_ 100% | 10.8 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 10.6 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 0:5.3.15-2.fc46 copr_base 8.5 MiB bzip2 x86_64 0:1.0.8-24.fc46 copr_base 90.6 KiB coreutils x86_64 0:9.12-1.fc46 fedora 6.3 MiB cpio x86_64 0:2.15-10.fc46 copr_base 1.1 MiB diffutils x86_64 0:3.12-6.fc45 fedora 1.6 MiB fedora-release-common noarch 0:46-0.1 fedora 4.6 KiB findutils x86_64 1:4.11.0-2.fc46 copr_base 2.0 MiB gawk x86_64 0:5.4.1-1.fc46 copr_base 2.2 MiB glibc-minimal-langpack x86_64 0:2.44.9000-4.fc46 fedora 0.0 B grep x86_64 0:3.12-4.fc45 fedora 1.0 MiB gzip x86_64 0:1.14-4.fc46 copr_base 409.6 KiB info x86_64 0:7.3-3.fc46 copr_base 395.6 KiB patch x86_64 0:2.8-6.fc46 copr_base 247.0 KiB redhat-rpm-config noarch 0:345-4.fc46 fedora 184.2 KiB rpm-build x86_64 0:6.1.0-1.fc46 fedora 312.1 KiB sed x86_64 0:4.10-2.fc45 fedora 866.5 KiB shadow-utils x86_64 2:4.20.0-1.fc46 copr_base 4.0 MiB tar x86_64 2:1.35-9.fc45 fedora 3.0 MiB unzip x86_64 0:6.0-71.fc45 fedora 441.8 KiB util-linux x86_64 0:2.42.4-2.fc46 fedora 3.7 MiB which x86_64 0:2.25-2.fc46 copr_base 79.0 KiB xz x86_64 1:5.8.4-1.fc46 fedora 1.4 MiB Installing dependencies: R-srpm-macros noarch 0:1.3.7-3.fc45 fedora 3.5 KiB add-determinism x86_64 0:0.7.3-3.fc45 fedora 2.2 MiB alternatives x86_64 0:1.33-6.fc46 copr_base 61.9 KiB ansible-srpm-macros noarch 0:1-22.fc45 fedora 35.7 KiB audit-libs x86_64 0:4.2.1-2.fc45 fedora 390.5 KiB binutils x86_64 0:2.47.50-12.fc46 fedora 24.4 MiB build-reproducibility-srpm-macros noarch 0:0.7.3-3.fc45 fedora 1.2 KiB bzip2-libs x86_64 0:1.0.8-24.fc46 copr_base 92.3 KiB ca-certificates noarch 0:2026.2.90_v9.0.317-1.fc46 fedora 2.6 MiB cmake-srpm-macros noarch 0:4.3.0-5.fc45 fedora 524.0 B coreutils-common x86_64 0:9.12-1.fc46 fedora 11.5 MiB crypto-policies noarch 0:20260713-2.gitc42da77.fc45 fedora 134.3 KiB curl x86_64 0:8.23.0~rc2-1.fc46 fedora 485.6 KiB cyrus-sasl-lib x86_64 0:2.1.28-37.fc45 fedora 2.3 MiB debugedit x86_64 0:5.3-3.fc46 copr_base 220.3 KiB dwz x86_64 0:0.17-3.fc45 fedora 291.1 KiB ed x86_64 0:1.22.6-1.fc46 copr_base 166.9 KiB efi-srpm-macros noarch 0:6-9.fc45 fedora 40.3 KiB elfutils x86_64 0:0.196-1.fc46 fedora 3.2 MiB elfutils-debuginfod-client x86_64 0:0.196-1.fc46 fedora 79.9 KiB elfutils-libelf x86_64 0:0.196-1.fc46 fedora 1.4 MiB elfutils-libs x86_64 0:0.196-1.fc46 fedora 719.6 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 x86_64 0:5.48-3.fc46 fedora 101.9 KiB file-libs x86_64 0:5.48-3.fc46 fedora 12.3 MiB filesystem x86_64 0:3.18-59.fc45 fedora 112.0 B filesystem-srpm-macros noarch 0:3.18-59.fc45 fedora 38.2 KiB fips-provider x86_64 0:1.5.3-1.fc46 fedora 4.8 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 x86_64 0:17.2-6.fc46 fedora 14.2 MiB gdbm-libs x86_64 1:1.23-12.fc46 copr_base 133.7 KiB ghc-srpm-macros noarch 0:1.10-2.fc45 fedora 792.0 B glibc x86_64 0:2.44.9000-4.fc46 fedora 7.2 MiB glibc-common x86_64 0:2.44.9000-4.fc46 fedora 1.0 MiB glibc-gconv-extra x86_64 0:2.44.9000-4.fc46 fedora 7.7 MiB gmp x86_64 1:6.3.0-6.fc45 fedora 815.2 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.fc46 copr_base 655.0 KiB gnupg2 x86_64 0:2.4.9-18.fc46 copr_base 6.6 MiB gnupg2-dirmngr x86_64 0:2.4.9-18.fc46 copr_base 680.0 KiB gnupg2-gpg-agent x86_64 0:2.4.9-18.fc46 copr_base 729.9 KiB gnupg2-gpgconf x86_64 0:2.4.9-18.fc46 copr_base 266.9 KiB gnupg2-keyboxd x86_64 0:2.4.9-18.fc46 copr_base 222.2 KiB gnupg2-verify x86_64 0:2.4.9-18.fc46 copr_base 399.2 KiB gnutls x86_64 0:3.8.13-5.fc46 fedora 3.8 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 x86_64 0:1.6.2-12.fc46 copr_base 56.4 KiB jansson x86_64 0:2.14-5.fc46 copr_base 101.1 KiB java-srpm-macros noarch 0:1-9.fc45 fedora 870.0 B json-c x86_64 0:0.18-9.fc46 copr_base 86.4 KiB kernel-srpm-macros noarch 0:1.0-30.fc45 fedora 1.9 KiB keyutils-libs x86_64 0:1.6.3-8.fc46 copr_base 50.0 KiB krb5-libs x86_64 0:1.22.2-9.fc45 fedora 2.4 MiB libacl x86_64 0:2.4.0-2.fc45 fedora 43.9 KiB libarchive x86_64 0:3.8.9-2.fc46 fedora 1.0 MiB libassuan x86_64 0:2.5.7-6.fc46 copr_base 168.0 KiB libattr x86_64 0:2.6.0-2.fc46 copr_base 24.1 KiB libblkid x86_64 0:2.42.4-2.fc46 fedora 282.3 KiB libbrotli x86_64 0:1.2.0-6.fc46 copr_base 876.8 KiB libcap x86_64 0:2.78-2.fc45 fedora 208.2 KiB libcap-ng x86_64 0:0.9.6-1.fc46 fedora 68.8 KiB libcbor x86_64 0:0.14.0-3.fc45 fedora 83.5 KiB libcom_err x86_64 0:1.47.4-2.fc46 copr_base 62.8 KiB libcurl x86_64 0:8.23.0~rc2-1.fc46 fedora 1.1 MiB libeconf x86_64 0:0.7.9-4.fc46 copr_base 69.0 KiB libevent x86_64 0:2.1.13-1.fc46 copr_base 943.1 KiB libfdisk x86_64 0:2.42.4-2.fc46 fedora 392.3 KiB libffi x86_64 0:3.8.0-1.fc46 fedora 95.5 KiB libfido2 x86_64 0:1.17.0-5.fc46 copr_base 257.4 KiB libfsverity x86_64 0:1.7-4.fc45 fedora 24.4 KiB libgcc x86_64 0:16.2.1-2.fc46.1 fedora 270.7 KiB libgcrypt x86_64 0:1.12.4-1.fc46 fedora 1.7 MiB libgomp x86_64 0:16.2.1-2.fc46.1 fedora 577.5 KiB libgpg-error x86_64 0:1.61-2.fc46 copr_base 966.4 KiB libidn2 x86_64 0:2.3.8-4.fc46 copr_base 556.3 KiB libksba x86_64 0:1.8.1-1.fc46 copr_base 428.9 KiB liblastlog2 x86_64 0:2.42.4-2.fc46 fedora 37.6 KiB libmount x86_64 0:2.42.4-2.fc46 fedora 408.9 KiB libnghttp2 x86_64 0:1.69.0-6.fc46 fedora 166.1 KiB libnghttp3 x86_64 0:1.18.0-1.fc46 copr_base 183.7 KiB libpfm x86_64 0:4.13.0-23.fc45 fedora 1.7 MiB libpkgconf x86_64 0:2.5.1-2.fc46 copr_base 85.8 KiB libpsl x86_64 0:0.23.3-1.fc46 copr_base 80.2 KiB libselinux x86_64 0:3.11-5.fc46 fedora 205.2 KiB libselinux-utils x86_64 0:3.11-5.fc46 fedora 306.0 KiB libsemanage x86_64 0:3.11-4.fc46 fedora 320.6 KiB libsepol x86_64 0:3.11-2.fc46 copr_base 944.4 KiB libsmartcols x86_64 0:2.42.4-2.fc46 fedora 188.5 KiB libssh x86_64 0:0.12.2-1.fc45 fedora 725.7 KiB libssh-config noarch 0:0.12.2-1.fc45 fedora 277.0 B libstdc++ x86_64 0:16.2.1-2.fc46.1 fedora 3.1 MiB libtasn1 x86_64 0:4.21.0-2.fc46 copr_base 188.6 KiB libtool-ltdl x86_64 0:2.6.2-1.fc46 fedora 70.0 KiB libunistring x86_64 0:1.1-12.fc46 copr_base 1.7 MiB libusb1 x86_64 0:1.0.30-2.fc45 fedora 180.1 KiB libuuid x86_64 0:2.42.4-2.fc46 fedora 37.2 KiB libverto x86_64 0:0.3.2-13.fc45 fedora 25.3 KiB libxcrypt x86_64 0:4.5.2-4.fc45 fedora 293.2 KiB libxml2 x86_64 0:2.15.4-1.fc46 fedora 1.7 MiB libzstd x86_64 0:1.5.7-6.fc46 copr_base 963.2 KiB linkdupes x86_64 0:0.7.3-3.fc45 fedora 782.1 KiB lua-libs x86_64 0:5.5.1-2.fc46 fedora 298.0 KiB lua-srpm-macros noarch 0:1-18.fc45 fedora 1.3 KiB lz4-libs x86_64 0:1.10.0-5.fc46 copr_base 173.1 KiB meson-srpm-macros noarch 0:1.12.1-2.fc46 fedora 1.7 KiB mpfr x86_64 0:4.2.2-4.fc45 fedora 849.2 KiB ncurses-base noarch 0:6.6-3.fc46 copr_base 329.7 KiB ncurses-libs x86_64 0:6.6-3.fc46 copr_base 959.0 KiB nettle x86_64 0:4.0-5.fc45 fedora 801.9 KiB ngtcp2 x86_64 0:1.22.1-3.fc45 fedora 334.3 KiB ngtcp2-crypto-ossl x86_64 0:1.22.1-3.fc45 fedora 51.6 KiB npth x86_64 0:1.8-5.fc46 copr_base 53.3 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 x86_64 0:2.6.14-1.fc46 fedora 678.9 KiB openssl-libs x86_64 1:4.0.3-1.fc46 fedora 6.7 MiB p11-kit x86_64 0:0.26.5-1.fc46 copr_base 2.6 MiB p11-kit-trust x86_64 0:0.26.5-1.fc46 copr_base 511.9 KiB package-notes-srpm-macros noarch 0:0.20-2.fc45 fedora 1.6 KiB pam-libs x86_64 0:1.7.2-4.fc46 copr_base 134.4 KiB pcre2 x86_64 0:10.47-1.fc46.2 copr_base 765.7 KiB pcre2-syntax noarch 0:10.47-1.fc46.2 copr_base 281.9 KiB perl-srpm-macros noarch 0:1-65.fc45 fedora 861.0 B pkgconf x86_64 0:2.5.1-2.fc46 copr_base 94.8 KiB pkgconf-m4 noarch 0:2.5.1-2.fc46 copr_base 14.3 KiB pkgconf-pkg-config x86_64 0:2.5.1-2.fc46 copr_base 989.0 B policycoreutils x86_64 0:3.11-2.fc46 copr_base 882.1 KiB popt x86_64 0:1.19-11.fc46 copr_base 132.5 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 x86_64 0:8.3-6.fc46 copr_base 535.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 x86_64 0:6.1.0-1.fc46 fedora 3.1 MiB rpm-build-libs x86_64 0:6.1.0-1.fc46 fedora 288.3 KiB rpm-libs x86_64 0:6.1.0-1.fc46 fedora 1.1 MiB rpm-plugin-selinux x86_64 0:6.1.0-1.fc46 fedora 11.9 KiB rpm-sequoia x86_64 0:1.10.3-1.fc46 fedora 2.4 MiB rpm-sign-libs x86_64 0:6.1.0-1.fc46 fedora 39.6 KiB rust-srpm-macros noarch 0:28.5-2.fc45 fedora 5.5 KiB selinux-policy noarch 0:45.20-1.fc46 fedora 32.1 KiB selinux-policy-targeted noarch 0:45.20-1.fc46 fedora 19.0 MiB setup noarch 0:2.15.1-2.fc45 fedora 725.6 KiB sqlite-libs x86_64 0:3.53.4-1.fc45 fedora 1.6 MiB systemd-libs x86_64 0:262-3.fc46 fedora 2.8 MiB systemd-standalone-sysusers x86_64 0:262-3.fc46 fedora 981.3 KiB tpm2-tss x86_64 0:4.2.0-1.fc46 copr_base 1.7 MiB tree-sitter-srpm-macros noarch 0:0.4.6-2.fc45 fedora 8.6 KiB util-linux-core x86_64 0:2.42.4-2.fc46 fedora 1.5 MiB xxhash-libs x86_64 0:0.8.4-1.fc46 fedora 94.0 KiB xz-libs x86_64 1:5.8.4-1.fc46 fedora 221.7 KiB zig-srpm-macros noarch 0:1-9.fc45 fedora 1.3 KiB zip x86_64 0:3.0-46.fc45 fedora 694.1 KiB zlib-ng-compat x86_64 0:2.3.3-6.fc46 copr_base 173.4 KiB zstd x86_64 0:1.5.7-6.fc46 copr_base 491.6 KiB Installing groups: Buildsystem building group Transaction Summary: Installing: 190 packages Total size of inbound packages is 71 MiB. Need to download 0 B. After this operation, 231 MiB extra will be used (install 231 MiB, remove 0 B). [ 1/190] redhat-rpm-config-0:345-4.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/190] rpm-build-0:6.1.0-1.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/190] unzip-0:6.0-71.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/190] fedora-release-common-0:46-0. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/190] glibc-minimal-langpack-0:2.44 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/190] tar-2:1.35-9.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/190] bzip2-0:1.0.8-24.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/190] cpio-0:2.15-10.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/190] which-0:2.25-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 10/190] bash-0:5.3.15-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 11/190] coreutils-0:9.12-1.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 12/190] grep-0:3.12-4.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 13/190] patch-0:2.8-6.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 14/190] sed-0:4.10-2.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 15/190] shadow-utils-2:4.20.0-1.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 16/190] util-linux-0:2.42.4-2.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 17/190] diffutils-0:3.12-6.fc45.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 18/190] findutils-1:4.11.0-2.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 19/190] gawk-0:5.4.1-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 20/190] gzip-0:1.14-4.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 21/190] info-0:7.3-3.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 22/190] xz-1:5.8.4-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 23/190] R-srpm-macros-0:1.3.7-3.fc45. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 24/190] ansible-srpm-macros-0:1-22.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 25/190] build-reproducibility-srpm-ma 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 26/190] cmake-srpm-macros-0:4.3.0-5.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 27/190] dwz-0:0.17-3.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 28/190] efi-srpm-macros-0:6-9.fc45.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 29/190] erlang-srpm-macros-0:0.3.11-2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 30/190] file-0:5.48-3.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 31/190] filesystem-srpm-macros-0:3.18 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 32/190] fonts-srpm-macros-1:5.0.0-4.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 33/190] forge-srpm-macros-0:0.4.0-5.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 34/190] fpc-srpm-macros-0:1.3-17.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 35/190] gap-srpm-macros-0:2-3.fc45.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 36/190] ghc-srpm-macros-0:1.10-2.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 37/190] gnat-srpm-macros-0:7-3.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 38/190] gnome-srpm-macros-0:1.0-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 39/190] go-srpm-macros-0:3.8.0-3.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 40/190] java-srpm-macros-0:1-9.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 41/190] kernel-srpm-macros-0:1.0-30.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 42/190] lua-srpm-macros-0:1-18.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 43/190] meson-srpm-macros-0:1.12.1-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 44/190] ocaml-srpm-macros-0:11-4.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 45/190] openblas-srpm-macros-0:2-22.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 46/190] package-notes-srpm-macros-0:0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 47/190] perl-srpm-macros-0:1-65.fc45. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 48/190] pyproject-srpm-macros-0:1.23. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 49/190] python-srpm-macros-0:3.15-2.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 50/190] qt5-srpm-macros-0:5.15.18-3.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 51/190] qt6-srpm-macros-0:6.11.2-1.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 52/190] rpm-0:6.1.0-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 53/190] rust-srpm-macros-0:28.5-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 54/190] tree-sitter-srpm-macros-0:0.4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 55/190] zig-srpm-macros-0:1-9.fc45.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 56/190] zip-0:3.0-46.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 57/190] elfutils-0:0.196-1.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 58/190] elfutils-libelf-0:0.196-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 59/190] glibc-0:2.44.9000-4.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 60/190] libgcc-0:16.2.1-2.fc46.1.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 61/190] libstdc++-0:16.2.1-2.fc46.1.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 62/190] rpm-build-libs-0:6.1.0-1.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 63/190] rpm-libs-0:6.1.0-1.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 64/190] fedora-repos-0:46-0.3.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 65/190] redhat-systemd-presets-0:102- 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 66/190] glibc-common-0:2.44.9000-4.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 67/190] libacl-0:2.4.0-2.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 68/190] filesystem-0:3.18-59.fc45.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 69/190] coreutils-common-0:9.12-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 70/190] gmp-1:6.3.0-6.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 71/190] libcap-0:2.78-2.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 72/190] openssl-libs-1:4.0.3-1.fc46.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 73/190] systemd-libs-0:262-3.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 74/190] audit-libs-0:4.2.1-2.fc45.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 75/190] libsemanage-0:3.11-4.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 76/190] libxcrypt-0:4.5.2-4.fc45.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 77/190] setup-0:2.15.1-2.fc45.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 78/190] libfdisk-0:2.42.4-2.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 79/190] liblastlog2-0:2.42.4-2.fc46.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 80/190] libsmartcols-0:2.42.4-2.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 81/190] libuuid-0:2.42.4-2.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 82/190] util-linux-core-0:2.42.4-2.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 83/190] mpfr-0:4.2.2-4.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 84/190] xz-libs-1:5.8.4-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 85/190] add-determinism-0:0.7.3-3.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 86/190] linkdupes-0:0.7.3-3.fc45.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 87/190] file-libs-0:5.48-3.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 88/190] elfutils-debuginfod-client-0: 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 89/190] elfutils-libs-0:0.196-1.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 90/190] libpfm-0:4.13.0-23.fc45.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 91/190] glibc-gconv-extra-0:2.44.9000 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 92/190] libgomp-0:16.2.1-2.fc46.1.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 93/190] lua-libs-0:5.5.1-2.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 94/190] rpm-sign-libs-0:6.1.0-1.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 95/190] fedora-gpg-keys-0:46-0.3.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 96/190] fedora-repos-rawhide-0:46-0.3 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 97/190] redhat-systemd-presets-common 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 98/190] ca-certificates-0:2026.2.90_v 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 99/190] crypto-policies-0:20260713-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [100/190] fips-provider-0:1.5.3-1.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [101/190] libselinux-0:3.11-5.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [102/190] libmount-0:2.42.4-2.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [103/190] libblkid-0:2.42.4-2.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [104/190] libeconf-0:0.7.9-4.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [105/190] pam-libs-0:1.7.2-4.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [106/190] ed-0:1.22.6-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [107/190] libattr-0:2.6.0-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [108/190] ncurses-libs-0:6.6-3.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [109/190] readline-0:8.3-6.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [110/190] bzip2-libs-0:1.0.8-24.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [111/190] binutils-0:2.47.50-12.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [112/190] libcap-ng-0:0.9.6-1.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [113/190] zlib-ng-compat-0:2.3.3-6.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [114/190] gnupg2-0:2.4.9-18.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [115/190] gpgverify-0:2.2-5.fc45.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [116/190] libgcrypt-0:1.12.4-1.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [117/190] ima-evm-utils-libs-0:1.6.2-12 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [118/190] libfsverity-0:1.7-4.fc45.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [119/190] popt-0:1.19-11.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [120/190] libzstd-0:1.5.7-6.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [121/190] rpm-sequoia-0:1.10.3-1.fc46.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [122/190] sqlite-libs-0:3.53.4-1.fc45.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [123/190] debugedit-0:5.3-3.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [124/190] libarchive-0:3.8.9-2.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [125/190] libxml2-0:2.15.4-1.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [126/190] pkgconf-pkg-config-0:2.5.1-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [127/190] zstd-0:1.5.7-6.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [128/190] curl-0:8.23.0~rc2-1.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [129/190] libsepol-0:3.11-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [130/190] pcre2-0:10.47-1.fc46.2.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [131/190] pcre2-syntax-0:10.47-1.fc46.2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [132/190] libgpg-error-0:1.61-2.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [133/190] lz4-libs-0:1.10.0-5.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [134/190] gnupg2-verify-0:2.4.9-18.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [135/190] json-c-0:0.18-9.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [136/190] gnulib-l10n-0:20241231-4.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [137/190] libffi-0:3.8.0-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [138/190] p11-kit-0:0.26.5-1.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [139/190] p11-kit-trust-0:0.26.5-1.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [140/190] alternatives-0:1.33-6.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [141/190] jansson-0:2.14-5.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [142/190] pkgconf-0:2.5.1-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [143/190] pkgconf-m4-0:2.5.1-2.fc46.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [144/190] libpkgconf-0:2.5.1-2.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [145/190] libtasn1-0:4.21.0-2.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [146/190] ncurses-base-0:6.6-3.fc46.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [147/190] tpm2-tss-0:4.2.0-1.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [148/190] libassuan-0:2.5.7-6.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [149/190] npth-0:1.8-5.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [150/190] gnupg2-dirmngr-0:2.4.9-18.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [151/190] gnutls-0:3.8.13-5.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [152/190] openldap-0:2.6.14-1.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [153/190] nettle-0:4.0-5.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [154/190] cyrus-sasl-lib-0:2.1.28-37.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [155/190] libtool-ltdl-0:2.6.2-1.fc46.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [156/190] gnupg2-gpg-agent-0:2.4.9-18.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [157/190] gnupg2-gpgconf-0:2.4.9-18.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [158/190] gnupg2-keyboxd-0:2.4.9-18.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [159/190] libevent-0:2.1.13-1.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [160/190] libidn2-0:2.3.8-4.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [161/190] libunistring-0:1.1-12.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [162/190] gdbm-libs-1:1.23-12.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [163/190] libusb1-0:1.0.30-2.fc45.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [164/190] libksba-0:1.8.1-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [165/190] fedora-release-0:46-0.1.noarc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [166/190] systemd-standalone-sysusers-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [167/190] gdb-minimal-0:17.2-6.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [168/190] xxhash-libs-0:0.8.4-1.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [169/190] fedora-release-identity-basic 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [170/190] libcurl-0:8.23.0~rc2-1.fc46.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [171/190] krb5-libs-0:1.22.2-9.fc45.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [172/190] libssh-0:0.12.2-1.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [173/190] ngtcp2-0:1.22.1-3.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [174/190] ngtcp2-crypto-ossl-0:1.22.1-3 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [175/190] libverto-0:0.3.2-13.fc45.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [176/190] libssh-config-0:0.12.2-1.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [177/190] selinux-policy-targeted-0:45. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [178/190] selinux-policy-0:45.20-1.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [179/190] rpm-plugin-selinux-0:6.1.0-1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [180/190] policycoreutils-0:3.11-2.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [181/190] libselinux-utils-0:3.11-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [182/190] libfido2-0:1.17.0-5.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [183/190] libcbor-0:0.14.0-3.fc45.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [184/190] libbrotli-0:1.2.0-6.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [185/190] libnghttp2-0:1.69.0-6.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [186/190] libnghttp3-0:1.18.0-1.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [187/190] libpsl-0:0.23.3-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [188/190] publicsuffix-list-dafsa-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [189/190] keyutils-libs-0:1.6.3-8.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [190/190] libcom_err-0:1.47.4-2.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [190/190] Total 100% | 0.0 B/s | 0.0 B | 00m00s 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/192] Verify package files 100% | 666.0 B/s | 190.0 B | 00m00s >>> Running %pretrans scriptlet: filesystem-0:3.18-59.fc45.x86_64 >>> Finished %pretrans scriptlet: filesystem-0:3.18-59.fc45.x86_64 >>> [RPM] /var/lib/mock/fedora-rawhide-x86_64-1790845717.798376/root/var/cache/dnf/copr_base-64ab9e188b99823d/packages/bzip2-1.0.8-24.fc46.x86_64.rpm: Header OpenPGP V4 RSA/SHA256 signature, key ID 5291f7fa5c4b3009: NOKEY >>> [RPM] failed to open /var/lib/mock/fedora-rawhide-x86_64-1790845717.798376/root/etc/group for id/name lookup: No such file or directory [ 2/192] Prepare transaction 100% | 3.4 KiB/s | 190.0 B | 00m00s [ 3/192] Installing libgcc-0:16.2.1-2. 100% | 266.0 MiB/s | 272.4 KiB | 00m00s [ 4/192] Installing redhat-systemd-pre 100% | 0.0 B/s | 1.5 KiB | 00m00s [ 5/192] Installing redhat-systemd-pre 100% | 0.0 B/s | 18.1 KiB | 00m00s [ 6/192] Installing publicsuffix-list- 100% | 0.0 B/s | 72.0 KiB | 00m00s [ 7/192] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 8/192] Installing fedora-release-ide 100% | 0.0 B/s | 920.0 B | 00m00s [ 9/192] Installing fedora-gpg-keys-0: 100% | 44.4 MiB/s | 181.7 KiB | 00m00s [ 10/192] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.5 KiB | 00m00s [ 11/192] Installing fedora-repos-0:46- 100% | 0.0 B/s | 5.9 KiB | 00m00s [ 12/192] Installing fedora-release-com 100% | 7.8 MiB/s | 8.0 KiB | 00m00s [ 13/192] Installing fedora-release-0:4 100% | 17.3 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/192] Installing setup-0:2.15.1-2.f 100% | 39.7 MiB/s | 731.3 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 15/192] Installing filesystem-0:3.18- 100% | 2.6 MiB/s | 253.6 KiB | 00m00s [ 16/192] Installing ncurses-base-0:6.6 100% | 86.7 MiB/s | 355.3 KiB | 00m00s [ 17/192] Installing glibc-common-0:2.4 100% | 47.1 MiB/s | 1.0 MiB | 00m00s [ 18/192] Installing glibc-gconv-extra- 100% | 288.4 MiB/s | 7.8 MiB | 00m00s [ 19/192] Installing glibc-0:2.44.9000- 100% | 175.1 MiB/s | 7.2 MiB | 00m00s [ 20/192] Installing ncurses-libs-0:6.6 100% | 235.6 MiB/s | 964.9 KiB | 00m00s [ 21/192] Installing bash-0:5.3.15-2.fc 100% | 242.2 MiB/s | 8.5 MiB | 00m00s [ 22/192] Installing glibc-minimal-lang 100% | 0.0 B/s | 124.0 B | 00m00s [ 23/192] Installing zlib-ng-compat-0:2 100% | 170.1 MiB/s | 174.2 KiB | 00m00s [ 24/192] Installing bzip2-libs-0:1.0.8 100% | 91.2 MiB/s | 93.4 KiB | 00m00s [ 25/192] Installing libgpg-error-0:1.6 100% | 50.0 MiB/s | 972.2 KiB | 00m00s [ 26/192] Installing readline-0:8.3-6.f 100% | 262.5 MiB/s | 537.6 KiB | 00m00s [ 27/192] Installing libstdc++-0:16.2.1 100% | 385.8 MiB/s | 3.1 MiB | 00m00s [ 28/192] Installing libzstd-0:1.5.7-6. 100% | 314.0 MiB/s | 964.5 KiB | 00m00s [ 29/192] Installing elfutils-libelf-0: 100% | 481.0 MiB/s | 1.4 MiB | 00m00s [ 30/192] Installing libgcrypt-0:1.12.4 100% | 416.6 MiB/s | 1.7 MiB | 00m00s [ 31/192] Installing libassuan-0:2.5.7- 100% | 165.9 MiB/s | 169.8 KiB | 00m00s [ 32/192] Installing libacl-0:2.4.0-2.f 100% | 0.0 B/s | 44.7 KiB | 00m00s [ 33/192] Installing gmp-1:6.3.0-6.fc45 100% | 266.1 MiB/s | 817.4 KiB | 00m00s [ 34/192] Installing systemd-libs-0:262 100% | 346.3 MiB/s | 2.8 MiB | 00m00s [ 35/192] Installing libuuid-0:2.42.4-2 100% | 0.0 B/s | 38.2 KiB | 00m00s [ 36/192] Installing xz-libs-1:5.8.4-1. 100% | 217.6 MiB/s | 222.8 KiB | 00m00s [ 37/192] Installing popt-0:1.19-11.fc4 100% | 67.9 MiB/s | 139.1 KiB | 00m00s [ 38/192] Installing sqlite-libs-0:3.53 100% | 404.7 MiB/s | 1.6 MiB | 00m00s [ 39/192] Installing npth-0:1.8-5.fc46. 100% | 0.0 B/s | 54.4 KiB | 00m00s [ 40/192] Installing elfutils-libs-0:0. 100% | 352.2 MiB/s | 721.3 KiB | 00m00s [ 41/192] Installing libblkid-0:2.42.4- 100% | 276.6 MiB/s | 283.3 KiB | 00m00s [ 42/192] Installing libsepol-0:3.11-2. 100% | 307.7 MiB/s | 945.4 KiB | 00m00s [ 43/192] Installing gnupg2-gpgconf-0:2 100% | 10.9 MiB/s | 269.0 KiB | 00m00s [ 44/192] Installing crypto-policies-0: 100% | 38.9 MiB/s | 159.5 KiB | 00m00s [ 45/192] Installing libxcrypt-0:4.5.2- 100% | 289.0 MiB/s | 295.9 KiB | 00m00s [ 46/192] Installing json-c-0:0.18-9.fc 100% | 85.6 MiB/s | 87.7 KiB | 00m00s [ 47/192] Installing libtasn1-0:4.21.0- 100% | 186.0 MiB/s | 190.5 KiB | 00m00s [ 48/192] Installing libunistring-0:1.1 100% | 347.6 MiB/s | 1.7 MiB | 00m00s [ 49/192] Installing libidn2-0:2.3.8-4. 100% | 183.1 MiB/s | 562.5 KiB | 00m00s [ 50/192] Installing gnupg2-verify-0:2. 100% | 20.6 MiB/s | 400.6 KiB | 00m00s [ 51/192] Installing mpfr-0:4.2.2-4.fc4 100% | 277.0 MiB/s | 850.9 KiB | 00m00s [ 52/192] Installing gawk-0:5.4.1-1.fc4 100% | 95.6 MiB/s | 2.2 MiB | 00m00s [ 53/192] Installing dwz-0:0.17-3.fc45. 100% | 16.8 MiB/s | 292.5 KiB | 00m00s [ 54/192] Installing libksba-0:1.8.1-1. 100% | 210.7 MiB/s | 431.5 KiB | 00m00s [ 55/192] Installing unzip-0:6.0-71.fc4 100% | 24.2 MiB/s | 445.3 KiB | 00m00s [ 56/192] Installing file-libs-0:5.48-3 100% | 685.8 MiB/s | 12.3 MiB | 00m00s [ 57/192] Installing file-0:5.48-3.fc46 100% | 5.9 MiB/s | 103.4 KiB | 00m00s [ 58/192] Installing diffutils-0:3.12-6 100% | 74.5 MiB/s | 1.6 MiB | 00m00s [ 59/192] Installing libsmartcols-0:2.4 100% | 185.2 MiB/s | 189.6 KiB | 00m00s [ 60/192] Installing lua-libs-0:5.5.1-2 100% | 292.4 MiB/s | 299.4 KiB | 00m00s [ 61/192] Installing libeconf-0:0.7.9-4 100% | 69.0 MiB/s | 70.6 KiB | 00m00s [ 62/192] Installing libattr-0:2.6.0-2. 100% | 0.0 B/s | 25.1 KiB | 00m00s [ 63/192] Installing libcap-ng-0:0.9.6- 100% | 69.0 MiB/s | 70.6 KiB | 00m00s [ 64/192] Installing audit-libs-0:4.2.1 100% | 383.9 MiB/s | 393.1 KiB | 00m00s [ 65/192] Installing pam-libs-0:1.7.2-4 100% | 133.6 MiB/s | 136.9 KiB | 00m00s [ 66/192] Installing libcap-0:2.78-2.fc 100% | 12.3 MiB/s | 213.3 KiB | 00m00s [ 67/192] Installing libffi-0:3.8.0-1.f 100% | 94.6 MiB/s | 96.9 KiB | 00m00s [ 68/192] Installing p11-kit-0:0.26.5-1 100% | 107.5 MiB/s | 2.6 MiB | 00m00s [ 69/192] Installing alternatives-0:1.3 100% | 3.9 MiB/s | 63.4 KiB | 00m00s [ 70/192] Installing p11-kit-trust-0:0. 100% | 20.1 MiB/s | 513.6 KiB | 00m00s [ 71/192] Installing ngtcp2-0:1.22.1-3. 100% | 164.0 MiB/s | 335.8 KiB | 00m00s [ 72/192] Installing liblastlog2-0:2.42 100% | 7.8 MiB/s | 39.8 KiB | 00m00s [ 73/192] Installing zip-0:3.0-46.fc45. 100% | 34.1 MiB/s | 698.0 KiB | 00m00s [ 74/192] Installing gnupg2-keyboxd-0:2 100% | 36.4 MiB/s | 223.5 KiB | 00m00s [ 75/192] Installing libpsl-0:0.23.3-1. 100% | 79.4 MiB/s | 81.3 KiB | 00m00s [ 76/192] Installing libfdisk-0:2.42.4- 100% | 192.0 MiB/s | 393.2 KiB | 00m00s [ 77/192] Installing fips-provider-0:1. 100% | 402.4 MiB/s | 4.8 MiB | 00m00s [ 78/192] Installing libusb1-0:1.0.30-2 100% | 177.5 MiB/s | 181.8 KiB | 00m00s [ 79/192] Installing nettle-0:4.0-5.fc4 100% | 262.0 MiB/s | 805.0 KiB | 00m00s [ 80/192] Installing gnutls-0:3.8.13-5. 100% | 383.7 MiB/s | 3.8 MiB | 00m00s [ 81/192] Installing zstd-0:1.5.7-6.fc4 100% | 24.2 MiB/s | 495.2 KiB | 00m00s [ 82/192] Installing libxml2-0:2.15.4-1 100% | 78.8 MiB/s | 1.7 MiB | 00m00s [ 83/192] Installing bzip2-0:1.0.8-24.f 100% | 5.5 MiB/s | 95.1 KiB | 00m00s [ 84/192] Installing add-determinism-0: 100% | 98.1 MiB/s | 2.2 MiB | 00m00s [ 85/192] Installing filesystem-srpm-ma 100% | 38.0 MiB/s | 38.9 KiB | 00m00s [ 86/192] Installing ed-0:1.22.6-1.fc46 100% | 9.7 MiB/s | 169.2 KiB | 00m00s [ 87/192] Installing patch-0:2.8-6.fc46 100% | 14.3 MiB/s | 248.5 KiB | 00m00s [ 88/192] Installing cpio-0:2.15-10.fc4 100% | 56.7 MiB/s | 1.1 MiB | 00m00s [ 89/192] Installing libpfm-0:4.13.0-23 100% | 432.1 MiB/s | 1.7 MiB | 00m00s [ 90/192] Installing libgomp-0:16.2.1-2 100% | 282.7 MiB/s | 578.9 KiB | 00m00s [ 91/192] Installing lz4-libs-0:1.10.0- 100% | 170.0 MiB/s | 174.0 KiB | 00m00s [ 92/192] Installing jansson-0:2.14-5.f 100% | 100.1 MiB/s | 102.5 KiB | 00m00s [ 93/192] Installing libpkgconf-0:2.5.1 100% | 84.9 MiB/s | 87.0 KiB | 00m00s [ 94/192] Installing pkgconf-0:2.5.1-2. 100% | 5.6 MiB/s | 97.3 KiB | 00m00s [ 95/192] Installing libtool-ltdl-0:2.6 100% | 69.5 MiB/s | 71.1 KiB | 00m00s [ 96/192] Installing gdbm-libs-1:1.23-1 100% | 132.2 MiB/s | 135.4 KiB | 00m00s [ 97/192] Installing cyrus-sasl-lib-0:2 100% | 106.3 MiB/s | 2.3 MiB | 00m00s [ 98/192] Installing systemd-standalone 100% | 53.3 MiB/s | 981.8 KiB | 00m00s [ 99/192] Installing xxhash-libs-0:0.8. 100% | 93.1 MiB/s | 95.4 KiB | 00m00s [100/192] Installing libverto-0:0.3.2-1 100% | 0.0 B/s | 27.1 KiB | 00m00s [101/192] Installing libcbor-0:0.14.0-3 100% | 82.9 MiB/s | 84.9 KiB | 00m00s [102/192] Installing libbrotli-0:1.2.0- 100% | 286.2 MiB/s | 879.1 KiB | 00m00s [103/192] Installing libnghttp2-0:1.69. 100% | 163.3 MiB/s | 167.3 KiB | 00m00s [104/192] Installing libnghttp3-0:1.18. 100% | 180.7 MiB/s | 185.1 KiB | 00m00s [105/192] Installing keyutils-libs-0:1. 100% | 50.2 MiB/s | 51.4 KiB | 00m00s [106/192] Installing libcom_err-0:1.47. 100% | 0.0 B/s | 64.0 KiB | 00m00s [107/192] Installing pkgconf-m4-0:2.5.1 100% | 0.0 B/s | 14.7 KiB | 00m00s [108/192] Installing pkgconf-pkg-config 100% | 110.8 KiB/s | 1.8 KiB | 00m00s [109/192] Installing gnulib-l10n-0:2024 100% | 215.5 MiB/s | 661.9 KiB | 00m00s [110/192] Installing coreutils-common-0 100% | 412.9 MiB/s | 11.6 MiB | 00m00s [111/192] Installing pcre2-syntax-0:10. 100% | 277.7 MiB/s | 284.3 KiB | 00m00s [112/192] Installing pcre2-0:10.47-1.fc 100% | 374.6 MiB/s | 767.1 KiB | 00m00s [113/192] Installing libselinux-0:3.11- 100% | 201.6 MiB/s | 206.4 KiB | 00m00s [114/192] Installing grep-0:3.12-4.fc45 100% | 50.1 MiB/s | 1.0 MiB | 00m00s [115/192] Installing sed-0:4.10-2.fc45. 100% | 45.0 MiB/s | 874.9 KiB | 00m00s [116/192] Installing findutils-1:4.11.0 100% | 90.1 MiB/s | 2.0 MiB | 00m00s [117/192] Installing xz-1:5.8.4-1.fc46. 100% | 64.8 MiB/s | 1.4 MiB | 00m00s [118/192] Installing libsemanage-0:3.11 100% | 157.4 MiB/s | 322.4 KiB | 00m00s [119/192] Installing libmount-0:2.42.4- 100% | 200.2 MiB/s | 410.0 KiB | 00m00s [120/192] Installing util-linux-core-0: 100% | 65.7 MiB/s | 1.5 MiB | 00m00s [121/192] Installing openssl-libs-1:4.0 100% | 372.2 MiB/s | 6.7 MiB | 00m00s [122/192] Installing coreutils-0:9.12-1 100% | 162.9 MiB/s | 6.4 MiB | 00m00s [123/192] Installing ca-certificates-0: 100% | 2.3 MiB/s | 2.5 MiB | 00m01s [124/192] Installing libarchive-0:3.8.9 100% | 245.5 MiB/s | 1.0 MiB | 00m00s [125/192] Installing krb5-libs-0:1.22.2 100% | 159.1 MiB/s | 2.4 MiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.2.0-1.fc46.x86_64 >>> Finished sysusers scriptlet: tpm2-tss-0:4.2.0-1.fc46.x86_64 >>> Scriptlet output: >>> Creating group 'tss' with GID 59. >>> Creating user 'tss' (Account used for TPM access) with UID 59 and GID 59. >>> [126/192] Installing tpm2-tss-0:4.2.0-1 100% | 281.1 MiB/s | 1.7 MiB | 00m00s [127/192] Installing ima-evm-utils-libs 100% | 56.4 MiB/s | 57.7 KiB | 00m00s [128/192] Installing gnupg2-gpg-agent-0 100% | 25.6 MiB/s | 733.7 KiB | 00m00s [129/192] Installing util-linux-0:2.42. 100% | 89.4 MiB/s | 3.8 MiB | 00m00s [130/192] Installing gzip-0:1.14-4.fc46 100% | 21.3 MiB/s | 415.1 KiB | 00m00s [131/192] Installing libfsverity-0:1.7- 100% | 24.8 MiB/s | 25.4 KiB | 00m00s [132/192] Installing rpm-sequoia-0:1.10 100% | 349.6 MiB/s | 2.4 MiB | 00m00s [133/192] Installing rpm-libs-0:6.1.0-1 100% | 274.8 MiB/s | 1.1 MiB | 00m00s [134/192] Installing libevent-0:2.1.13- 100% | 308.2 MiB/s | 946.8 KiB | 00m00s [135/192] Installing openldap-0:2.6.14- 100% | 222.2 MiB/s | 682.7 KiB | 00m00s [136/192] Installing gnupg2-dirmngr-0:2 100% | 25.6 MiB/s | 682.8 KiB | 00m00s [137/192] Installing gnupg2-0:2.4.9-18. 100% | 195.6 MiB/s | 6.7 MiB | 00m00s [138/192] Installing rpm-sign-libs-0:6. 100% | 39.5 MiB/s | 40.5 KiB | 00m00s [139/192] Installing rpm-build-libs-0:6 100% | 282.4 MiB/s | 289.2 KiB | 00m00s [140/192] Installing gpgverify-0:2.2-5. 100% | 0.0 B/s | 9.4 KiB | 00m00s [141/192] Installing ngtcp2-crypto-ossl 100% | 0.0 B/s | 52.5 KiB | 00m00s [142/192] Installing libfido2-0:1.17.0- 100% | 252.8 MiB/s | 258.9 KiB | 00m00s [143/192] Installing libssh-0:0.12.2-1. 100% | 355.4 MiB/s | 727.8 KiB | 00m00s [144/192] Installing libcurl-0:8.23.0~r 100% | 360.6 MiB/s | 1.1 MiB | 00m00s [145/192] Installing elfutils-debuginfo 100% | 4.5 MiB/s | 82.2 KiB | 00m00s [146/192] Installing elfutils-0:0.196-1 100% | 127.1 MiB/s | 3.2 MiB | 00m00s [147/192] Installing binutils-0:2.47.50 100% | 302.3 MiB/s | 24.5 MiB | 00m00s [148/192] Installing gdb-minimal-0:17.2 100% | 252.9 MiB/s | 14.2 MiB | 00m00s [149/192] Installing debugedit-0:5.3-3. 100% | 12.1 MiB/s | 223.6 KiB | 00m00s [150/192] Installing curl-0:8.23.0~rc2- 100% | 17.7 MiB/s | 488.2 KiB | 00m00s [151/192] Installing rpm-0:6.1.0-1.fc46 100% | 69.5 MiB/s | 2.5 MiB | 00m00s [152/192] Installing cmake-srpm-macros- 100% | 0.0 B/s | 804.0 B | 00m00s [153/192] Installing efi-srpm-macros-0: 100% | 0.0 B/s | 41.3 KiB | 00m00s [154/192] Installing java-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [155/192] Installing lua-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [156/192] Installing tree-sitter-srpm-m 100% | 0.0 B/s | 9.6 KiB | 00m00s [157/192] Installing zig-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [158/192] Installing tar-2:1.35-9.fc45. 100% | 114.4 MiB/s | 3.0 MiB | 00m00s [159/192] Installing linkdupes-0:0.7.3- 100% | 40.3 MiB/s | 783.5 KiB | 00m00s [160/192] Installing libselinux-utils-0 100% | 16.5 MiB/s | 320.4 KiB | 00m00s [161/192] Installing policycoreutils-0: 100% | 29.6 MiB/s | 910.5 KiB | 00m00s [162/192] Installing selinux-policy-0:4 100% | 1.8 MiB/s | 34.5 KiB | 00m00s [163/192] Installing selinux-policy-tar 100% | 196.8 MiB/s | 15.2 MiB | 00m00s [164/192] Installing build-reproducibil 100% | 0.0 B/s | 1.5 KiB | 00m00s [165/192] Installing rust-srpm-macros-0 100% | 0.0 B/s | 6.4 KiB | 00m00s [166/192] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 748.0 B | 00m00s [167/192] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [168/192] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [169/192] Installing package-notes-srpm 100% | 0.0 B/s | 2.1 KiB | 00m00s [170/192] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [171/192] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.1 KiB | 00m00s [172/192] Installing meson-srpm-macros- 100% | 0.0 B/s | 1.9 KiB | 00m00s [173/192] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [174/192] Installing gnome-srpm-macros- 100% | 0.0 B/s | 4.1 KiB | 00m00s [175/192] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [176/192] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [177/192] Installing gap-srpm-macros-0: 100% | 0.0 B/s | 2.7 KiB | 00m00s [178/192] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [179/192] Installing ansible-srpm-macro 100% | 0.0 B/s | 36.2 KiB | 00m00s [180/192] Installing redhat-rpm-config- 100% | 185.9 MiB/s | 190.4 KiB | 00m00s [181/192] Installing forge-srpm-macros- 100% | 39.3 MiB/s | 40.3 KiB | 00m00s [182/192] Installing rpm-build-0:6.1.0- 100% | 15.7 MiB/s | 322.1 KiB | 00m00s [183/192] Installing erlang-srpm-macros 100% | 0.0 B/s | 2.5 KiB | 00m00s [184/192] Installing pyproject-srpm-mac 100% | 0.0 B/s | 4.0 KiB | 00m00s [185/192] Installing fonts-srpm-macros- 100% | 0.0 B/s | 57.0 KiB | 00m00s [186/192] Installing go-srpm-macros-0:3 100% | 0.0 B/s | 63.0 KiB | 00m00s [187/192] Installing R-srpm-macros-0:1. 100% | 0.0 B/s | 4.4 KiB | 00m00s [188/192] Installing python-srpm-macros 100% | 0.0 B/s | 52.9 KiB | 00m00s [189/192] Installing rpm-plugin-selinux 100% | 0.0 B/s | 12.9 KiB | 00m00s [190/192] Installing which-0:2.25-2.fc4 100% | 4.4 MiB/s | 81.2 KiB | 00m00s [191/192] Installing shadow-utils-2:4.2 100% | 123.3 MiB/s | 4.1 MiB | 00m00s [192/192] Installing info-0:7.3-3.fc46. 100% | 55.6 KiB/s | 396.0 KiB | 00m07s Warning: skipped OpenPGP checks for 61 packages from repository: copr_base Complete! Updating and loading repositories: fedora 100% | 41.1 KiB/s | 24.5 KiB | 00m01s Additional repo copr_tstellar_fedora_c 100% | 2.8 KiB/s | 1.5 KiB | 00m01s Additional repo copr_fedora_llvm_team_ 100% | 2.8 KiB/s | 1.5 KiB | 00m01s Copr repository 100% | 2.8 KiB/s | 1.5 KiB | 00m01s 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.32-1.fc46 fedora 99.7 KiB annobin-plugin-gcc x86_64 0:13.32-1.fc46 fedora 724.5 KiB clang x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 70.5 MiB clang-libs x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 112.2 MiB clang-resource-filesystem x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 15.3 KiB compiler-rt x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 44.1 MiB cpp x86_64 0:16.2.1-2.fc46.1 fedora 42.6 MiB expat x86_64 0:2.8.3-1.fc46 copr_base 342.1 KiB gcc x86_64 0:16.2.1-2.fc46.1 fedora 121.8 MiB gcc-c++ x86_64 0:16.2.1-2.fc46.1 fedora 46.8 MiB gcc-plugin-annobin x86_64 0:16.2.1-2.fc46.1 fedora 57.1 KiB glibc-devel x86_64 0:2.44.9000-4.fc46 fedora 2.3 MiB kernel-headers x86_64 0:7.3.0-0.rc5.45.fc46 fedora 7.1 MiB libatomic x86_64 0:16.2.1-2.fc46.1 fedora 45.6 KiB libedit x86_64 0:3.1-60.20260512cvs.fc46 copr_base 256.8 KiB libmpc x86_64 0:1.4.1-2.fc46 copr_base 164.7 KiB libomp x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 3.3 MiB libstdc++-devel x86_64 0:16.2.1-2.fc46.1 fedora 41.2 MiB libxcrypt-devel x86_64 0:4.5.2-4.fc45 fedora 31.0 KiB lld x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 42.8 KiB lld-libs x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 6.3 MiB llvm x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 135.7 MiB llvm-filesystem x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 0.0 B llvm-libs x86_64 0:24.0.0~pre20260928.g6909c17f146832-6.fc46 copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928 150.9 MiB make x86_64 1:4.4.1-13.fc46 copr_base 1.8 MiB mpdecimal x86_64 0:4.0.1-4.fc46 copr_base 249.0 KiB python-pip-wheel noarch 0:26.2.1-1.fc46 fedora 1.3 MiB python3 x86_64 0:3.15.0~rc2-1.fc46 fedora 28.7 KiB python3-libs x86_64 0:3.15.0~rc2-1.fc46 fedora 48.2 MiB tzdata noarch 0:2026c-2.fc46 fedora 1.2 MiB Transaction Summary: Installing: 31 packages Total size of inbound packages is 215 MiB. Need to download 0 B. After this operation, 839 MiB extra will be used (install 839 MiB, remove 0 B). [ 1/31] fedora-clang-default-cc-0:1-1.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/31] clang-0:24.0.0~pre20260928.g690 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/31] clang-libs-0:24.0.0~pre20260928 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/31] llvm-libs-0:24.0.0~pre20260928. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/31] clang-resource-filesystem-0:24. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/31] llvm-filesystem-0:24.0.0~pre202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/31] llvm-0:24.0.0~pre20260928.g6909 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/31] lld-0:24.0.0~pre20260928.g6909c 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/31] libomp-0:24.0.0~pre20260928.g69 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [10/31] compiler-rt-0:24.0.0~pre2026092 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [11/31] lld-libs-0:24.0.0~pre20260928.g 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [12/31] libedit-0:3.1-60.20260512cvs.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [13/31] python3-0:3.15.0~rc2-1.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [14/31] python3-libs-0:3.15.0~rc2-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [15/31] python-pip-wheel-0:26.2.1-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [16/31] gcc-c++-0:16.2.1-2.fc46.1.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [17/31] gcc-0:16.2.1-2.fc46.1.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [18/31] cpp-0:16.2.1-2.fc46.1.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [19/31] libstdc++-devel-0:16.2.1-2.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [20/31] expat-0:2.8.3-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [21/31] mpdecimal-0:4.0.1-4.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [22/31] tzdata-0:2026c-2.fc46.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [23/31] libmpc-0:1.4.1-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [24/31] glibc-devel-0:2.44.9000-4.fc46. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [25/31] libxcrypt-devel-0:4.5.2-4.fc45. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [26/31] libatomic-0:16.2.1-2.fc46.1.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [27/31] make-1:4.4.1-13.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [28/31] kernel-headers-0:7.3.0-0.rc5.45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [29/31] annobin-plugin-gcc-0:13.32-1.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [30/31] gcc-plugin-annobin-0:16.2.1-2.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [31/31] annobin-docs-0:13.32-1.fc46.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [31/31] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction [ 1/33] Verify package files 100% | 37.0 B/s | 31.0 B | 00m01s [ 2/33] Prepare transaction 100% | 720.0 B/s | 31.0 B | 00m00s [ 3/33] Installing libmpc-0:1.4.1-2.fc4 100% | 54.2 MiB/s | 166.4 KiB | 00m00s [ 4/33] Installing libstdc++-devel-0:16 100% | 469.6 MiB/s | 41.3 MiB | 00m00s [ 5/33] Installing clang-resource-files 100% | 16.3 MiB/s | 16.7 KiB | 00m00s [ 6/33] Installing cpp-0:16.2.1-2.fc46. 100% | 349.1 MiB/s | 42.6 MiB | 00m00s [ 7/33] Installing annobin-docs-0:13.32 100% | 32.8 MiB/s | 100.8 KiB | 00m00s [ 8/33] Installing kernel-headers-0:7.3 100% | 218.7 MiB/s | 7.2 MiB | 00m00s [ 9/33] Installing glibc-devel-0:2.44.9 100% | 184.5 MiB/s | 2.4 MiB | 00m00s [10/33] Installing libxcrypt-devel-0:4. 100% | 32.5 MiB/s | 33.3 KiB | 00m00s [11/33] Installing make-1:4.4.1-13.fc46 100% | 82.6 MiB/s | 1.8 MiB | 00m00s [12/33] Installing libatomic-0:16.2.1-2 100% | 45.6 MiB/s | 46.7 KiB | 00m00s [13/33] Installing gcc-0:16.2.1-2.fc46. 100% | 395.8 MiB/s | 121.9 MiB | 00m00s [14/33] Installing gcc-c++-0:16.2.1-2.f 100% | 334.6 MiB/s | 46.8 MiB | 00m00s [15/33] Installing tzdata-0:2026c-2.fc4 100% | 53.7 MiB/s | 1.5 MiB | 00m00s [16/33] Installing mpdecimal-0:4.0.1-4. 100% | 244.7 MiB/s | 250.5 KiB | 00m00s [17/33] Installing expat-0:2.8.3-1.fc46 100% | 18.7 MiB/s | 344.2 KiB | 00m00s [18/33] Installing python-pip-wheel-0:2 100% | 181.2 MiB/s | 1.3 MiB | 00m00s [19/33] Installing python3-libs-0:3.15. 100% | 360.2 MiB/s | 48.6 MiB | 00m00s [20/33] Installing python3-0:3.15.0~rc2 100% | 1.7 MiB/s | 30.5 KiB | 00m00s [21/33] Installing compiler-rt-0:24.0.0 100% | 678.0 MiB/s | 44.1 MiB | 00m00s [22/33] Installing libedit-0:3.1-60.202 100% | 252.4 MiB/s | 258.5 KiB | 00m00s [23/33] Installing llvm-filesystem-0:24 100% | 0.0 B/s | 1.1 KiB | 00m00s [24/33] Installing llvm-libs-0:24.0.0~p 100% | 460.0 MiB/s | 150.9 MiB | 00m00s [25/33] Installing clang-libs-0:24.0.0~ 100% | 458.1 MiB/s | 112.2 MiB | 00m00s [26/33] Installing clang-0:24.0.0~pre20 100% | 568.7 MiB/s | 70.5 MiB | 00m00s [27/33] Installing llvm-0:24.0.0~pre202 100% | 402.8 MiB/s | 135.7 MiB | 00m00s [28/33] Installing libomp-0:24.0.0~pre2 100% | 369.0 MiB/s | 3.3 MiB | 00m00s [29/33] Installing lld-libs-0:24.0.0~pr 100% | 418.5 MiB/s | 6.3 MiB | 00m00s [30/33] Installing lld-0:24.0.0~pre2026 100% | 1.9 MiB/s | 45.9 KiB | 00m00s [31/33] Installing fedora-clang-default 100% | 0.0 B/s | 288.0 B | 00m00s [32/33] Installing annobin-plugin-gcc-0 100% | 54.6 MiB/s | 726.2 KiB | 00m00s [33/33] Installing gcc-plugin-annobin-0 100% | 553.5 KiB/s | 58.7 KiB | 00m00s Warning: skipped OpenPGP checks for 16 packages from repositories: copr_base, copr_fedora_llvm_team_llvm_snapshots_big_merge_20260928, 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.x86_64 alternatives-1.33-6.fc46.x86_64 annobin-docs-13.32-1.fc46.noarch annobin-plugin-gcc-13.32-1.fc46.x86_64 ansible-srpm-macros-1-22.fc45.noarch audit-libs-4.2.1-2.fc45.x86_64 bash-5.3.15-2.fc46.x86_64 binutils-2.47.50-12.fc46.x86_64 build-reproducibility-srpm-macros-0.7.3-3.fc45.noarch bzip2-1.0.8-24.fc46.x86_64 bzip2-libs-1.0.8-24.fc46.x86_64 ca-certificates-2026.2.90_v9.0.317-1.fc46.noarch clang-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 clang-libs-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 clang-resource-filesystem-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 cmake-srpm-macros-4.3.0-5.fc45.noarch compiler-rt-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 coreutils-9.12-1.fc46.x86_64 coreutils-common-9.12-1.fc46.x86_64 cpio-2.15-10.fc46.x86_64 cpp-16.2.1-2.fc46.1.x86_64 crypto-policies-20260713-2.gitc42da77.fc45.noarch curl-8.23.0~rc2-1.fc46.x86_64 cyrus-sasl-lib-2.1.28-37.fc45.x86_64 debugedit-5.3-3.fc46.x86_64 diffutils-3.12-6.fc45.x86_64 dwz-0.17-3.fc45.x86_64 ed-1.22.6-1.fc46.x86_64 efi-srpm-macros-6-9.fc45.noarch elfutils-0.196-1.fc46.x86_64 elfutils-debuginfod-client-0.196-1.fc46.x86_64 elfutils-libelf-0.196-1.fc46.x86_64 elfutils-libs-0.196-1.fc46.x86_64 erlang-srpm-macros-0.3.11-2.fc45.noarch expat-2.8.3-1.fc46.x86_64 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.48-3.fc46.x86_64 file-libs-5.48-3.fc46.x86_64 filesystem-3.18-59.fc45.x86_64 filesystem-srpm-macros-3.18-59.fc45.noarch findutils-4.11.0-2.fc46.x86_64 fips-provider-1.5.3-1.fc46.x86_64 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.fc46.x86_64 gcc-16.2.1-2.fc46.1.x86_64 gcc-c++-16.2.1-2.fc46.1.x86_64 gcc-plugin-annobin-16.2.1-2.fc46.1.x86_64 gdb-minimal-17.2-6.fc46.x86_64 gdbm-libs-1.23-12.fc46.x86_64 ghc-srpm-macros-1.10-2.fc45.noarch glibc-2.44.9000-4.fc46.x86_64 glibc-common-2.44.9000-4.fc46.x86_64 glibc-devel-2.44.9000-4.fc46.x86_64 glibc-gconv-extra-2.44.9000-4.fc46.x86_64 glibc-minimal-langpack-2.44.9000-4.fc46.x86_64 gmp-6.3.0-6.fc45.x86_64 gnat-srpm-macros-7-3.fc45.noarch gnome-srpm-macros-1.0-2.fc45.noarch gnulib-l10n-20241231-4.fc46.noarch gnupg2-2.4.9-18.fc46.x86_64 gnupg2-dirmngr-2.4.9-18.fc46.x86_64 gnupg2-gpg-agent-2.4.9-18.fc46.x86_64 gnupg2-gpgconf-2.4.9-18.fc46.x86_64 gnupg2-keyboxd-2.4.9-18.fc46.x86_64 gnupg2-verify-2.4.9-18.fc46.x86_64 gnutls-3.8.13-5.fc46.x86_64 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.x86_64 gzip-1.14-4.fc46.x86_64 ima-evm-utils-libs-1.6.2-12.fc46.x86_64 info-7.3-3.fc46.x86_64 jansson-2.14-5.fc46.x86_64 java-srpm-macros-1-9.fc45.noarch json-c-0.18-9.fc46.x86_64 kernel-headers-7.3.0-0.rc5.45.fc46.x86_64 kernel-srpm-macros-1.0-30.fc45.noarch keyutils-libs-1.6.3-8.fc46.x86_64 krb5-libs-1.22.2-9.fc45.x86_64 libacl-2.4.0-2.fc45.x86_64 libarchive-3.8.9-2.fc46.x86_64 libassuan-2.5.7-6.fc46.x86_64 libatomic-16.2.1-2.fc46.1.x86_64 libattr-2.6.0-2.fc46.x86_64 libblkid-2.42.4-2.fc46.x86_64 libbrotli-1.2.0-6.fc46.x86_64 libcap-2.78-2.fc45.x86_64 libcap-ng-0.9.6-1.fc46.x86_64 libcbor-0.14.0-3.fc45.x86_64 libcom_err-1.47.4-2.fc46.x86_64 libcurl-8.23.0~rc2-1.fc46.x86_64 libeconf-0.7.9-4.fc46.x86_64 libedit-3.1-60.20260512cvs.fc46.x86_64 libevent-2.1.13-1.fc46.x86_64 libfdisk-2.42.4-2.fc46.x86_64 libffi-3.8.0-1.fc46.x86_64 libfido2-1.17.0-5.fc46.x86_64 libfsverity-1.7-4.fc45.x86_64 libgcc-16.2.1-2.fc46.1.x86_64 libgcrypt-1.12.4-1.fc46.x86_64 libgomp-16.2.1-2.fc46.1.x86_64 libgpg-error-1.61-2.fc46.x86_64 libidn2-2.3.8-4.fc46.x86_64 libksba-1.8.1-1.fc46.x86_64 liblastlog2-2.42.4-2.fc46.x86_64 libmount-2.42.4-2.fc46.x86_64 libmpc-1.4.1-2.fc46.x86_64 libnghttp2-1.69.0-6.fc46.x86_64 libnghttp3-1.18.0-1.fc46.x86_64 libomp-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 libpfm-4.13.0-23.fc45.x86_64 libpkgconf-2.5.1-2.fc46.x86_64 libpsl-0.23.3-1.fc46.x86_64 libselinux-3.11-5.fc46.x86_64 libselinux-utils-3.11-5.fc46.x86_64 libsemanage-3.11-4.fc46.x86_64 libsepol-3.11-2.fc46.x86_64 libsmartcols-2.42.4-2.fc46.x86_64 libssh-0.12.2-1.fc45.x86_64 libssh-config-0.12.2-1.fc45.noarch libstdc++-16.2.1-2.fc46.1.x86_64 libstdc++-devel-16.2.1-2.fc46.1.x86_64 libtasn1-4.21.0-2.fc46.x86_64 libtool-ltdl-2.6.2-1.fc46.x86_64 libunistring-1.1-12.fc46.x86_64 libusb1-1.0.30-2.fc45.x86_64 libuuid-2.42.4-2.fc46.x86_64 libverto-0.3.2-13.fc45.x86_64 libxcrypt-4.5.2-4.fc45.x86_64 libxcrypt-devel-4.5.2-4.fc45.x86_64 libxml2-2.15.4-1.fc46.x86_64 libzstd-1.5.7-6.fc46.x86_64 linkdupes-0.7.3-3.fc45.x86_64 lld-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 lld-libs-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 llvm-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 llvm-filesystem-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 llvm-libs-24.0.0~pre20260928.g6909c17f146832-6.fc46.x86_64 lua-libs-5.5.1-2.fc46.x86_64 lua-srpm-macros-1-18.fc45.noarch lz4-libs-1.10.0-5.fc46.x86_64 make-4.4.1-13.fc46.x86_64 meson-srpm-macros-1.12.1-2.fc46.noarch mpdecimal-4.0.1-4.fc46.x86_64 mpfr-4.2.2-4.fc45.x86_64 ncurses-base-6.6-3.fc46.noarch ncurses-libs-6.6-3.fc46.x86_64 nettle-4.0-5.fc45.x86_64 ngtcp2-1.22.1-3.fc45.x86_64 ngtcp2-crypto-ossl-1.22.1-3.fc45.x86_64 npth-1.8-5.fc46.x86_64 ocaml-srpm-macros-11-4.fc45.noarch openblas-srpm-macros-2-22.fc45.noarch openldap-2.6.14-1.fc46.x86_64 openssl-libs-4.0.3-1.fc46.x86_64 p11-kit-0.26.5-1.fc46.x86_64 p11-kit-trust-0.26.5-1.fc46.x86_64 package-notes-srpm-macros-0.20-2.fc45.noarch pam-libs-1.7.2-4.fc46.x86_64 patch-2.8-6.fc46.x86_64 pcre2-10.47-1.fc46.2.x86_64 pcre2-syntax-10.47-1.fc46.2.noarch perl-srpm-macros-1-65.fc45.noarch pkgconf-2.5.1-2.fc46.x86_64 pkgconf-m4-2.5.1-2.fc46.noarch pkgconf-pkg-config-2.5.1-2.fc46.x86_64 policycoreutils-3.11-2.fc46.x86_64 popt-1.19-11.fc46.x86_64 publicsuffix-list-dafsa-20260624-2.fc45.noarch pyproject-srpm-macros-1.23.2-1.fc45.noarch python-pip-wheel-26.2.1-1.fc46.noarch python-srpm-macros-3.15-2.fc45.noarch python3-3.15.0~rc2-1.fc46.x86_64 python3-libs-3.15.0~rc2-1.fc46.x86_64 qt5-srpm-macros-5.15.18-3.fc45.noarch qt6-srpm-macros-6.11.2-1.fc46.noarch readline-8.3-6.fc46.x86_64 redhat-rpm-config-345-4.fc46.noarch redhat-systemd-presets-102-3.fc45.noarch redhat-systemd-presets-common-102-3.fc45.noarch rpm-6.1.0-1.fc46.x86_64 rpm-build-6.1.0-1.fc46.x86_64 rpm-build-libs-6.1.0-1.fc46.x86_64 rpm-libs-6.1.0-1.fc46.x86_64 rpm-plugin-selinux-6.1.0-1.fc46.x86_64 rpm-sequoia-1.10.3-1.fc46.x86_64 rpm-sign-libs-6.1.0-1.fc46.x86_64 rust-srpm-macros-28.5-2.fc45.noarch sed-4.10-2.fc45.x86_64 selinux-policy-45.20-1.fc46.noarch selinux-policy-targeted-45.20-1.fc46.noarch setup-2.15.1-2.fc45.noarch shadow-utils-4.20.0-1.fc46.x86_64 sqlite-libs-3.53.4-1.fc45.x86_64 systemd-libs-262-3.fc46.x86_64 systemd-standalone-sysusers-262-3.fc46.x86_64 tar-1.35-9.fc45.x86_64 tpm2-tss-4.2.0-1.fc46.x86_64 tree-sitter-srpm-macros-0.4.6-2.fc45.noarch tzdata-2026c-2.fc46.noarch unzip-6.0-71.fc45.x86_64 util-linux-2.42.4-2.fc46.x86_64 util-linux-core-2.42.4-2.fc46.x86_64 which-2.25-2.fc46.x86_64 xxhash-libs-0.8.4-1.fc46.x86_64 xz-5.8.4-1.fc46.x86_64 xz-libs-5.8.4-1.fc46.x86_64 zig-srpm-macros-1-9.fc45.noarch zip-3.0-46.fc45.x86_64 zlib-ng-compat-2.3.3-6.fc46.x86_64 zstd-1.5.7-6.fc46.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 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-x86_64-1790845717.798376/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-tfi7qbq1/bird/bird.spec) Config(child) 0 minutes 29 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-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1790845717.798376/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1790845717.798376/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-x86_64-1790845717.798376/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.x86_64 rpm-sequoia-1.10.3-1.fc46.x86_64 dnf5-5.4.6.0-1.fc46.x86_64 dnf5-plugins-5.4.6.0-1.fc46.x86_64 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: x86_64 Building for target x86_64 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% | 35.4 KiB/s | 24.5 KiB | 00m01s Additional repo copr_tstellar_fedora_c 100% | 2.5 KiB/s | 1.5 KiB | 00m01s Additional repo copr_fedora_llvm_team_ 100% | 2.5 KiB/s | 1.5 KiB | 00m01s Copr repository 100% | 2.5 KiB/s | 1.5 KiB | 00m01s Repositories loaded. Package "gcc-16.2.1-2.fc46.1.x86_64" is already installed. Package "make-1:4.4.1-13.fc46.x86_64" is already installed. Package "sed-4.10-2.fc45.x86_64" is already installed. Package Arch Version Repository Size Installing: bison x86_64 0:3.8.2-16.fc46 copr_base 3.5 MiB flex x86_64 0:2.6.4-25.fc46 copr_base 833.2 KiB libssh-devel x86_64 0:0.12.2-1.fc45 fedora 204.2 KiB linuxdoc-tools x86_64 0:0.9.85-4.fc46 copr_base 493.4 KiB ncurses-devel x86_64 0:6.6-3.fc46 copr_base 895.6 KiB perl-FindBin noarch 0:1.54-527.fc45 fedora 6.8 KiB readline-devel x86_64 0:8.3-6.fc46 copr_base 595.7 KiB sgml-common noarch 0:0.6.3-70.fc46 fedora 168.1 KiB systemd-rpm-macros noarch 0:262-3.fc46 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 x86_64 0:0.9~rc2-9.fc46 copr_base 168.5 KiB biber noarch 0:2.22-2.fc46 fedora 1.4 MiB cairo x86_64 0:1.18.6-1.fc46 fedora 1.8 MiB cmake-filesystem x86_64 0:4.3.0-5.fc45 fedora 0.0 B cups-filesystem noarch 1:2.4.19-4.fc46 copr_base 0.0 B cups-libs x86_64 1:2.4.19-4.fc46 copr_base 794.6 KiB dblatex noarch 0:0.3.12-33.fc45 fedora 5.2 MiB dbus-libs x86_64 1:1.16.2-6.fc46 copr_base 460.1 KiB default-fonts-core-sans noarch 0:4.3-3.fc45 fedora 11.9 KiB desktop-file-utils x86_64 0:0.28-8.fc46 copr_base 221.6 KiB docbook-dtds noarch 0:1.0-93.fc46 fedora 6.7 MiB emacs-filesystem x86_64 1:31.1-1.fc46 fedora 0.0 B fontconfig x86_64 0:2.18.3-2.fc46 fedora 1.0 MiB fonts-filesystem noarch 1:5.0.0-4.fc45 fedora 0.0 B freetype x86_64 0:2.14.3-2.fc46 copr_base 950.1 KiB ghostscript x86_64 0:10.08.0-1.fc46 copr_base 30.5 KiB ghostscript-tools-dvipdf noarch 0:10.08.0-1.fc46 copr_base 1.4 KiB ghostscript-tools-fontutils noarch 0:10.08.0-1.fc46 copr_base 2.5 KiB ghostscript-tools-printing noarch 0:10.08.0-1.fc46 copr_base 3.5 KiB glib2 x86_64 0:2.90.0-1.fc46 fedora 15.3 MiB google-droid-sans-fonts noarch 0:20200215-25.fc45 fedora 6.3 MiB google-noto-fonts-common noarch 0:20260901-4.fc46 fedora 17.7 KiB google-noto-sans-vf-fonts noarch 0:20260901-4.fc46 fedora 1.4 MiB graphite2 x86_64 0:1.3.14-22.fc46 copr_base 200.2 KiB groff x86_64 0:1.24.1-2.fc46 copr_base 4.3 MiB groff-base x86_64 0:1.24.1-2.fc46 copr_base 4.4 MiB harfbuzz x86_64 0:14.5.0-1.fc46 fedora 3.0 MiB hostname x86_64 0:3.25-5.fc46 copr_base 41.1 KiB jbig2dec-libs x86_64 0:0.20-9.fc45 fedora 168.9 KiB jbigkit-libs x86_64 0:2.1-34.fc45 fedora 117.2 KiB keyutils-libs-devel x86_64 0:1.6.3-8.fc46 copr_base 48.2 KiB krb5-devel x86_64 0:1.22.2-9.fc45 fedora 709.9 KiB latexmk noarch 0:4.88-2.fc45 fedora 1.0 MiB lcms2 x86_64 0:2.16-8.fc46 copr_base 548.9 KiB libICE x86_64 0:1.1.2-5.fc45 fedora 198.4 KiB libSM x86_64 0:1.2.5-5.fc45 fedora 100.9 KiB libX11 x86_64 0:1.8.13-3.fc46 fedora 1.3 MiB libX11-common noarch 0:1.8.13-3.fc46 fedora 1.1 MiB libXau x86_64 0:1.0.12-5.fc45 fedora 72.8 KiB libXaw x86_64 0:1.0.16-6.fc45 fedora 515.0 KiB libXext x86_64 0:1.3.6-6.fc45 fedora 89.9 KiB libXi x86_64 0:1.8.3-2.fc45 fedora 80.6 KiB libXmu x86_64 0:1.2.1-6.fc45 fedora 195.1 KiB libXpm x86_64 0:3.5.19-4.fc46 copr_base 164.6 KiB libXrender x86_64 0:0.9.12-5.fc45 fedora 49.9 KiB libXt x86_64 0:1.3.1-5.fc45 fedora 437.7 KiB libcom_err-devel x86_64 0:1.47.4-2.fc46 copr_base 16.7 KiB libdatrie x86_64 0:0.2.14-3.fc45 fedora 57.7 KiB libgs x86_64 0:10.08.0-1.fc46 copr_base 22.2 MiB libicu x86_64 0:78.3-8.fc45 fedora 37.8 MiB libijs x86_64 0:0.35-27.fc46 copr_base 61.2 KiB libjpeg-turbo x86_64 0:3.1.4.1-2.fc46 copr_base 933.4 KiB libkadm5 x86_64 0:1.22.2-9.fc45 fedora 217.9 KiB liblerc x86_64 0:4.2.0-1.fc46 copr_base 570.7 KiB libpaper x86_64 1:2.1.1-11.fc46 copr_base 48.5 KiB libpng x86_64 2:1.6.58-2.fc46 copr_base 294.0 KiB libselinux-devel x86_64 0:3.11-5.fc46 fedora 121.9 KiB libsepol-devel x86_64 0:3.11-2.fc46 copr_base 120.7 KiB libthai x86_64 0:0.1.30-3.fc46 copr_base 804.8 KiB libtiff x86_64 0:4.7.2-2.fc46 copr_base 659.2 KiB libverto-devel x86_64 0:0.3.2-13.fc45 fedora 25.7 KiB libwebp x86_64 0:1.6.0-4.fc45 fedora 968.1 KiB libxcb x86_64 0:1.17.0-8.fc45 fedora 1.1 MiB libxslt x86_64 0:1.1.43-10.fc46 copr_base 455.7 KiB lzo x86_64 0:2.10-17.fc45 fedora 178.8 KiB m4 x86_64 0:1.4.21-3.fc45 fedora 881.1 KiB mailcap noarch 0:2.1.54-11.fc45 fedora 86.0 KiB ncurses x86_64 0:6.6-3.fc46 copr_base 626.6 KiB ncurses-c++-libs x86_64 0:6.6-3.fc46 copr_base 151.8 KiB openjade x86_64 0:1.3.2-86.fc45 fedora 3.8 MiB openjpeg x86_64 0:2.5.4-4.fc46 copr_base 439.9 KiB opensp x86_64 0:1.5.2-51.fc45 fedora 2.9 MiB pcre2-devel x86_64 0:10.47-1.fc46.2 copr_base 2.1 MiB pcre2-utf16 x86_64 0:10.47-1.fc46.2 copr_base 694.6 KiB pcre2-utf32 x86_64 0:10.47-1.fc46.2 copr_base 666.5 KiB perl-Authen-SASL noarch 0:2.2100-1.fc46 fedora 133.9 KiB perl-AutoLoader noarch 0:5.74-527.fc45 fedora 20.6 KiB perl-B x86_64 0:1.92-527.fc45 fedora 513.5 KiB perl-B-Hooks-EndOfScope noarch 0:0.28-6.fc46 copr_base 69.3 KiB perl-Business-ISBN noarch 0:3.014-2.fc45 fedora 56.1 KiB perl-Business-ISBN-Data noarch 0:20260925.001-1.fc46 fedora 312.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 x86_64 0:0.50-3.fc45 fedora 57.3 KiB perl-Clone-PP noarch 0:1.09-1.fc46 fedora 13.0 KiB perl-Compress-Raw-Bzip2 x86_64 0:2.224-1.fc46 fedora 73.4 KiB perl-Compress-Raw-Zlib x86_64 0:2.224-1.fc46 fedora 173.4 KiB perl-Convert-ASN1 noarch 0:0.34-8.fc45 fedora 170.0 KiB perl-Crypt-URandom x86_64 0:0.55-3.fc46 copr_base 61.1 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 x86_64 0:2.192-528.fc45 fedora 115.5 KiB perl-Data-OptList noarch 0:0.115-1.fc46 fedora 51.7 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:7.00-1.fc46 fedora 10.7 MiB perl-DateTime x86_64 2:1.67-1.fc46 fedora 382.2 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.70-1.fc46 fedora 6.2 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 x86_64 0:0.010-1.fc46 copr_base 33.3 KiB perl-Devel-Caller x86_64 0:2.07-13.fc45 fedora 23.1 KiB perl-Devel-GlobalDestruction noarch 0:0.14-29.fc45 fedora 16.6 KiB perl-Devel-LexAlias x86_64 0:0.05-44.fc45 fedora 15.0 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 x86_64 0:2.59-527.fc45 fedora 59.5 KiB perl-Digest-SHA x86_64 1:6.04-528.fc45 fedora 112.3 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 x86_64 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 x86_64 4:3.24-527.fc45 fedora 4.7 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 x86_64 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.46-1.fc46 fedora 95.8 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 x86_64 0:1.20-527.fc45 fedora 44.7 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 x86_64 2:1.65-527.fc45 fedora 156.3 KiB perl-GSSAPI x86_64 0:0.28-53.fc45 fedora 120.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 x86_64 0:3.86-1.fc46 fedora 280.8 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 x86_64 0:1.27-527.fc45 fedora 62.5 KiB perl-I18N-LangTags noarch 0:0.45-527.fc45 fedora 82.4 KiB perl-I18N-Langinfo x86_64 0:0.24-527.fc45 fedora 38.6 KiB perl-IO x86_64 0:1.56-527.fc45 fedora 147.3 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 x86_64 0:2.09-527.fc45 fedora 73.7 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.05-1.fc46 fedora 80.4 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 x86_64 0:3.16-527.fc45 fedora 41.9 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.20260924-1.fc46 fedora 1.3 MiB perl-Module-Implementation noarch 0:0.09-45.fc46 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 x86_64 0:1.96-5.fc45 fedora 1.3 MiB perl-Number-Compare noarch 0:0.03-43.fc45 fedora 4.5 KiB perl-Opcode x86_64 0:1.71-527.fc45 fedora 48.5 KiB perl-POSIX x86_64 0:2.26-527.fc45 fedora 229.3 KiB perl-Package-Generator noarch 0:1.106-36.fc45 fedora 29.9 KiB perl-Package-Stash noarch 0:0.40-12.fc46 copr_base 55.9 KiB perl-Package-Stash-XS x86_64 0:0.30-15.fc45 fedora 64.1 KiB perl-PadWalker x86_64 0:2.5-21.fc45 fedora 40.9 KiB perl-Params-Check noarch 1:0.38-527.fc45 fedora 27.6 KiB perl-Params-Classify x86_64 0:0.015-30.fc45 fedora 51.4 KiB perl-Params-SomeUtil x86_64 0:1.12-1.fc46 fedora 100.5 KiB perl-Params-Validate x86_64 0:1.31-15.fc45 fedora 148.8 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 x86_64 0:3.95-527.fc45 fedora 180.0 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.fc46 copr_base 31.5 KiB perl-Ref-Util-XS x86_64 0:0.117-30.fc46 copr_base 42.0 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 x86_64 5:1.70-527.fc45 fedora 144.8 KiB perl-SelectSaver noarch 0:1.03-527.fc45 fedora 2.1 KiB perl-Socket x86_64 4:2.043-1.fc46 fedora 121.7 KiB perl-Sort-Key x86_64 0:1.33-38.fc45 fedora 73.4 KiB perl-Specio noarch 0:0.53-3.fc45 fedora 333.4 KiB perl-Storable x86_64 1:3.41-527.fc45 fedora 234.9 KiB perl-Sub-Exporter noarch 0:0.992-1.fc46 fedora 194.6 KiB perl-Sub-Exporter-Progressive noarch 0:0.001013-30.fc46 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 x86_64 0:1.25-527.fc45 fedora 15.7 KiB perl-Sys-Hostname-Long noarch 0:1.5-35.fc46 fedora 15.1 KiB perl-Sys-Syslog x86_64 0:0.36-528.fc45 fedora 94.5 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 x86_64 0:0.91-8.fc45 fedora 505.4 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 x86_64 0:3.05-38.fc45 fedora 46.6 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 x86_64 4:1.9780-527.fc45 fedora 115.6 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.37-1.fc46 fedora 275.5 KiB perl-Unicode-Collate x86_64 0:1.31-527.fc45 fedora 4.2 MiB perl-Unicode-LineBreak x86_64 0:2019.001-28.fc45 fedora 259.5 KiB perl-Unicode-Normalize x86_64 0:1.32-527.fc45 fedora 486.1 KiB perl-Unicode-UCD noarch 0:0.83-527.fc45 fedora 206.4 KiB perl-Variable-Magic x86_64 0:0.65-1.fc46 fedora 127.3 KiB perl-WWW-RobotRules noarch 0:6.03-3.fc45 fedora 41.1 KiB perl-XML-LibXML x86_64 1:2.0213-4.fc46 fedora 924.8 KiB perl-XML-LibXML-Simple noarch 0:1.01-20.fc45 fedora 50.8 KiB perl-XML-LibXSLT x86_64 0:2.003.000-9.fc46 fedora 141.0 KiB perl-XML-NamespaceSupport noarch 0:1.12-28.fc45 fedora 44.7 KiB perl-XML-Parser x86_64 0:2.59-4.fc45 fedora 707.2 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 x86_64 0:0.005-20.fc46 copr_base 32.8 KiB perl-autodie noarch 0:2.37-527.fc45 fedora 214.9 KiB perl-autovivification x86_64 0:0.18-30.fc45 fedora 57.8 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 x86_64 4:3.00-527.fc45 fedora 150.4 KiB perl-if noarch 0:0.61.000-527.fc45 fedora 5.8 KiB perl-interpreter x86_64 4:5.44.0-527.fc45 fedora 119.8 KiB perl-lib x86_64 0:0.65-527.fc45 fedora 8.5 KiB perl-libnet noarch 0:3.15-528.fc45 fedora 288.4 KiB perl-libs x86_64 4:5.44.0-527.fc45 fedora 12.0 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 x86_64 0:1.30-527.fc45 fedora 41.4 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.1-1.fc46 fedora 327.2 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 x86_64 9:0.99.34-527.fc45 fedora 132.7 KiB perltidy noarch 0:20260826-1.fc46 fedora 4.5 MiB pixman x86_64 0:0.46.2-4.fc46 copr_base 826.7 KiB ruby x86_64 0:4.0.7-40.fc46 fedora 97.9 KiB ruby-libs x86_64 0:4.0.7-40.fc46 fedora 15.4 MiB rubypick noarch 0:1.1.1-25.fc45 fedora 4.4 KiB sombok x86_64 0:2.4.0-26.fc45 fedora 131.5 KiB teckit x86_64 0:2.5.13-3.fc46 copr_base 2.1 MiB tex-preview noarch 0:14.2.0-1.fc46 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 x86_64 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 x86_64 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 x86_64 12:svn77942-113.fc45 fedora 3.8 MiB texlive-dvips x86_64 12:svn77830-113.fc45 fedora 1.6 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 x86_64 12:svn52851-113.fc45 fedora 46.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 x86_64 12:svn77861-113.fc45 fedora 2.1 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 x86_64 12:20260301-113.fc45 fedora 1.2 MiB 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 x86_64 12:svn77830-113.fc45 fedora 6.4 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 x86_64 12:svn78218-113.fc45 fedora 9.3 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 x86_64 12:svn75712-113.fc45 fedora 506.7 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 x86_64 12:svn77830-113.fc45 fedora 837.3 KiB 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 x86_64 12:svn77830-113.fc45 fedora 202.8 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 x86_64 12:svn77868-113.fc45 fedora 7.1 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 x86_64 12:svn77830-113.fc45 fedora 1.1 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 x86_64 12:svn77830-113.fc45 fedora 405.1 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 x86_64 12:svn77830-113.fc45 fedora 1.2 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 x86_64 12:svn77830-113.fc45 fedora 2.6 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 x86_64 12:svn62387-113.fc45 fedora 751.2 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 x86_64 12:svn77830-113.fc45 fedora 2.2 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-70.fc46 fedora 78.4 KiB xpdf-libs x86_64 1:4.06-3.fc45 fedora 1.8 MiB zziplib x86_64 0:0.13.78-6.fc46 copr_base 226.5 KiB Transaction Summary: Installing: 748 packages Total size of inbound packages is 661 MiB. Need to download 625 MiB. After this operation, 1 GiB extra will be used (install 1 GiB, remove 0 B). [ 1/748] sgml-common-0:0.6.3-70.fc46.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/748] perl-Exporter-0:5.79-527.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/748] perl-File-Temp-1:0.231.200-52 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/748] perl-Carp-0:1.54-527.fc45.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/748] perl-File-Path-0:2.18-527.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/748] perl-Scalar-List-Utils-5:1.70 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/748] perl-constant-0:1.33-528.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/748] perl-parent-1:0.244-527.fc45. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/748] perl-Getopt-Long-1:2.58-527.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 10/748] perl-Pod-Usage-4:2.05-527.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 11/748] perl-libs-4:5.44.0-527.fc45.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 12/748] perl-Digest-MD5-0:2.59-527.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 13/748] perl-Text-ParseWords-0:3.31-5 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 14/748] perl-Pod-Perldoc-0:3.28.01-52 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 15/748] perl-podlators-1:6.1.1-1.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 16/748] perl-Digest-0:1.20-527.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 17/748] perl-URI-0:5.37-1.fc46.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 18/748] perl-Data-Dumper-0:2.192-528. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 19/748] perl-HTTP-Tiny-0:0.096-528.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 20/748] perl-Pod-Simple-1:3.48-527.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 21/748] perl-Term-ANSIColor-0:5.01-52 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 22/748] perl-Term-Cap-0:1.18-527.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 23/748] perl-MIME-Base64-0:3.16-527.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 24/748] libX11-0:1.8.13-3.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 25/748] perl-interpreter-4:5.44.0-527 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 26/748] libXt-0:1.3.1-5.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 27/748] perl-PathTools-0:3.95-527.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 28/748] perl-MIME-Base32-0:1.303-26.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 29/748] perl-Unicode-Normalize-0:1.32 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 30/748] perl-libnet-0:3.15-528.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 31/748] perl-Fcntl-0:1.20-527.fc45.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 32/748] perl-IO-0:1.56-527.fc45.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 33/748] perl-B-0:1.92-527.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 34/748] perl-Errno-0:1.39-527.fc45.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 35/748] perl-IO-Socket-SSL-0:2.099-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 36/748] perl-Net-SSLeay-0:1.96-5.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 37/748] perl-Socket-4:2.043-1.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 38/748] perl-Time-HiRes-4:1.9780-527. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 39/748] perl-Time-Local-2:1.350-527.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 40/748] perl-Pod-Escapes-1:1.07-527.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 41/748] perl-Text-Tabs+Wrap-0:2024.00 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 42/748] perl-POSIX-0:2.26-527.fc45.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 43/748] libX11-common-0:1.8.13-3.fc46 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 44/748] libxcb-0:1.17.0-8.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 45/748] libICE-0:1.1.2-5.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 46/748] libSM-0:1.2.5-5.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 47/748] perl-IO-Socket-IP-0:0.44-527. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 48/748] libXau-0:1.0.12-5.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 49/748] groff-base-0:1.24.1-2.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 50/748] openjade-0:1.3.2-86.fc45.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 51/748] opensp-0:1.5.2-51.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 52/748] perl-File-Basename-0:2.86-527 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 53/748] perl-FileHandle-0:2.05-527.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 54/748] perl-base-0:2.27-527.fc45.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 55/748] perl-vars-0:1.05-527.fc45.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 56/748] fontconfig-0:2.18.3-2.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 57/748] default-fonts-core-sans-0:4.3 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 58/748] fonts-filesystem-1:5.0.0-4.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 59/748] xml-common-0:0.6.3-70.fc46.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 60/748] abattis-cantarell-vf-fonts-0: 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 61/748] google-noto-sans-vf-fonts-0:2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 62/748] google-noto-fonts-common-0:20 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 63/748] freetype-0:2.14.3-2.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 64/748] graphite2-0:1.3.14-22.fc46.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 65/748] harfbuzz-0:14.5.0-1.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 66/748] glib2-0:2.90.0-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 67/748] libpaper-1:2.1.1-11.fc46.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 68/748] libpng-2:1.6.58-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 69/748] perl-Encode-4:3.24-527.fc45.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 70/748] perl-Storable-1:3.41-527.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 71/748] perl-DynaLoader-0:1.57-527.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 72/748] perl-Symbol-0:1.09-527.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 73/748] perl-overload-0:1.40-527.fc45 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 74/748] perl-mro-0:1.30-527.fc45.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 75/748] ncurses-0:6.6-3.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 76/748] perl-if-0:0.61.000-527.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 77/748] perl-IPC-Open3-0:1.24-527.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 78/748] perl-locale-0:1.13-527.fc45.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 79/748] perl-AutoLoader-0:5.74-527.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 80/748] perl-File-stat-0:1.15-527.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 81/748] perl-SelectSaver-0:1.03-527.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 82/748] perl-Class-Struct-0:0.68-527. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 83/748] perl-Getopt-Std-0:1.15-527.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 84/748] perl-overloading-0:0.03-527.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 85/748] libgs-0:10.08.0-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 86/748] adobe-mappings-cmap-0:2023111 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 87/748] adobe-mappings-cmap-deprecate 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 88/748] adobe-mappings-pdf-0:20190401 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 89/748] google-droid-sans-fonts-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 90/748] jbig2dec-libs-0:0.20-9.fc45.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 91/748] urw-base35-fonts-0:20200910-2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 92/748] urw-base35-bookman-fonts-0:20 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 93/748] urw-base35-c059-fonts-0:20200 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 94/748] urw-base35-d050000l-fonts-0:2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 95/748] urw-base35-fonts-common-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 96/748] urw-base35-gothic-fonts-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 97/748] urw-base35-nimbus-mono-ps-fon 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 98/748] urw-base35-nimbus-roman-fonts 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 99/748] urw-base35-nimbus-sans-fonts- 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [100/748] urw-base35-p052-fonts-0:20200 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [101/748] urw-base35-standard-symbols-p 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [102/748] urw-base35-z003-fonts-0:20200 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [103/748] cups-libs-1:2.4.19-4.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [104/748] lcms2-0:2.16-8.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [105/748] libijs-0:0.35-27.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [106/748] libjpeg-turbo-0:3.1.4.1-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [107/748] libtiff-0:4.7.2-2.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [108/748] jbigkit-libs-0:2.1-34.fc45.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [109/748] libwebp-0:1.6.0-4.fc45.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [110/748] openjpeg-0:2.5.4-4.fc46.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [111/748] avahi-libs-0:0.9~rc2-9.fc46.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [112/748] cups-filesystem-1:2.4.19-4.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [113/748] dbus-libs-1:1.16.2-6.fc46.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [114/748] liblerc-0:4.2.0-1.fc46.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [115/748] docbook-dtds-0:1.0-93.fc46.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [116/748] systemd-rpm-macros-0:262-3.fc 100% | 10.2 MiB/s | 21.0 KiB | 00m00s [117/748] bison-0:3.8.2-16.fc46.x86_64 100% | 138.1 MiB/s | 990.1 KiB | 00m00s [118/748] texlive-enumitem-12:svn77682- 100% | 36.3 MiB/s | 185.9 KiB | 00m00s [119/748] flex-0:2.6.4-25.fc46.x86_64 100% | 97.3 MiB/s | 298.9 KiB | 00m00s [120/748] libssh-devel-0:0.12.2-1.fc45. 100% | 23.1 MiB/s | 47.3 KiB | 00m00s [121/748] perl-FindBin-0:1.54-527.fc45. 100% | 6.8 MiB/s | 13.9 KiB | 00m00s [122/748] ncurses-devel-0:6.6-3.fc46.x8 100% | 141.3 MiB/s | 578.9 KiB | 00m00s [123/748] readline-devel-0:8.3-6.fc46.x 100% | 102.9 MiB/s | 210.7 KiB | 00m00s [124/748] texlive-kpathsea-12:svn77861- 100% | 155.4 MiB/s | 1.1 MiB | 00m00s [125/748] texlive-base-12:20260301-113. 100% | 242.6 MiB/s | 2.9 MiB | 00m00s [126/748] cmake-filesystem-0:4.3.0-5.fc 100% | 4.8 MiB/s | 14.9 KiB | 00m00s [127/748] texlive-collection-latexrecom 100% | 4.3 MiB/s | 8.9 KiB | 00m00s [128/748] texlive-texlive-scripts-extra 100% | 20.9 MiB/s | 64.1 KiB | 00m00s [129/748] texlive-texlive-scripts-12:sv 100% | 40.7 MiB/s | 125.0 KiB | 00m00s [130/748] texlive-lib-12:20260301-113.f 100% | 105.2 MiB/s | 538.5 KiB | 00m00s [131/748] texlive-anysize-12:svn77682-4 100% | 42.6 MiB/s | 43.7 KiB | 00m00s [132/748] texlive-attachfile2-12:svn776 100% | 114.5 MiB/s | 469.0 KiB | 00m00s [133/748] texlive-booktabs-12:svn77682- 100% | 98.5 MiB/s | 302.7 KiB | 00m00s [134/748] texlive-beamer-12:svn78101-4. 100% | 153.7 MiB/s | 2.6 MiB | 00m00s [135/748] texlive-breqn-12:svn77682-4.f 100% | 94.9 MiB/s | 1.0 MiB | 00m00s [136/748] texlive-cite-12:svn77682-4.fc 100% | 59.2 MiB/s | 242.7 KiB | 00m00s [137/748] texlive-caption-12:svn77682-4 100% | 113.9 MiB/s | 816.5 KiB | 00m00s [138/748] texlive-cmap-12:svn77682-4.fc 100% | 11.5 MiB/s | 23.6 KiB | 00m00s [139/748] texlive-collection-latex-12:s 100% | 4.4 MiB/s | 9.0 KiB | 00m00s [140/748] texlive-crop-12:svn77682-4.fc 100% | 81.8 MiB/s | 335.2 KiB | 00m00s [141/748] texlive-ctable-12:svn77682-4. 100% | 147.0 MiB/s | 602.0 KiB | 00m00s [142/748] texlive-eso-pic-12:svn77682-4 100% | 72.9 MiB/s | 298.7 KiB | 00m00s [143/748] texlive-euenc-12:svn19795-4.f 100% | 39.2 MiB/s | 160.7 KiB | 00m00s [144/748] texlive-euler-12:svn77682-4.f 100% | 60.4 MiB/s | 247.2 KiB | 00m00s [145/748] texlive-everysel-12:svn57489- 100% | 108.8 MiB/s | 445.7 KiB | 00m00s [146/748] texlive-everyshi-12:svn77682- 100% | 47.0 MiB/s | 144.2 KiB | 00m00s [147/748] texlive-extsizes-12:svn78101- 100% | 52.9 MiB/s | 216.5 KiB | 00m00s [148/748] texlive-fancybox-12:svn77682- 100% | 71.1 MiB/s | 291.1 KiB | 00m00s [149/748] texlive-fancyref-12:svn77682- 100% | 37.0 MiB/s | 113.7 KiB | 00m00s [150/748] texlive-fancyvrb-12:svn78721- 100% | 65.2 MiB/s | 200.2 KiB | 00m00s [151/748] texlive-float-12:svn77682-4.f 100% | 61.9 MiB/s | 126.7 KiB | 00m00s [152/748] texlive-filehook-12:svn77682- 100% | 34.7 MiB/s | 319.6 KiB | 00m00s [153/748] texlive-fontspec-12:svn77682- 100% | 127.8 MiB/s | 1.1 MiB | 00m00s [154/748] texlive-footnotehyper-12:svn7 100% | 19.3 MiB/s | 98.8 KiB | 00m00s [155/748] texlive-fp-12:svn77682-4.fc45 100% | 80.5 MiB/s | 247.3 KiB | 00m00s [156/748] texlive-grffile-12:svn78101-4 100% | 87.3 MiB/s | 357.6 KiB | 00m00s [157/748] texlive-hologo-12:svn78580-4. 100% | 115.2 MiB/s | 589.8 KiB | 00m00s [158/748] texlive-index-12:svn77682-4.f 100% | 58.8 MiB/s | 301.0 KiB | 00m00s [159/748] texlive-jknapltx-12:svn19440- 100% | 14.1 MiB/s | 28.9 KiB | 00m00s [160/748] texlive-infwarerr-12:svn77682 100% | 95.1 MiB/s | 292.3 KiB | 00m00s [161/748] texlive-l3experimental-12:svn 100% | 116.9 MiB/s | 1.4 MiB | 00m00s [162/748] texlive-latexbug-12:svn78389- 100% | 57.4 MiB/s | 235.3 KiB | 00m00s [163/748] texlive-lineno-12:svn78315-4. 100% | 111.2 MiB/s | 797.2 KiB | 00m00s [164/748] texlive-koma-script-12:svn775 100% | 160.7 MiB/s | 6.7 MiB | 00m00s [165/748] texlive-listings-12:svn77682- 100% | 127.4 MiB/s | 2.5 MiB | 00m00s [166/748] texlive-ltx-talk-12:svn78710- 100% | 215.3 MiB/s | 881.9 KiB | 00m00s [167/748] texlive-lua-unicode-math-12:s 100% | 52.1 MiB/s | 160.1 KiB | 00m00s [168/748] texlive-mathspec-12:svn77682- 100% | 37.3 MiB/s | 190.9 KiB | 00m00s [169/748] texlive-mathtools-12:svn78251 100% | 138.4 MiB/s | 1.1 MiB | 00m00s [170/748] texlive-lwarp-12:svn78111-113 100% | 142.7 MiB/s | 3.4 MiB | 00m00s [171/748] texlive-mdwtools-12:svn15878- 100% | 120.3 MiB/s | 1.6 MiB | 00m00s [172/748] texlive-metalogo-12:svn77682- 100% | 15.1 MiB/s | 92.6 KiB | 00m00s [173/748] texlive-memoir-12:svn77682-4. 100% | 197.1 MiB/s | 3.0 MiB | 00m00s [174/748] texlive-newfloat-12:svn77682- 100% | 44.5 MiB/s | 136.7 KiB | 00m00s [175/748] texlive-microtype-12:svn78228 100% | 193.9 MiB/s | 2.5 MiB | 00m00s [176/748] texlive-parskip-12:svn77682-4 100% | 78.1 MiB/s | 320.0 KiB | 00m00s [177/748] texlive-pdfcolfoot-12:svn7768 100% | 154.5 MiB/s | 316.5 KiB | 00m00s [178/748] texlive-pdflscape-12:svn77682 100% | 78.1 MiB/s | 320.0 KiB | 00m00s [179/748] texlive-pdfpages-12:svn78558- 100% | 102.5 MiB/s | 209.9 KiB | 00m00s [180/748] texlive-polyglossia-12:svn787 100% | 56.0 MiB/s | 687.8 KiB | 00m00s [181/748] texlive-psfrag-12:svn15878-4. 100% | 39.8 MiB/s | 81.6 KiB | 00m00s [182/748] texlive-ragged2e-12:svn77682- 100% | 140.5 MiB/s | 719.1 KiB | 00m00s [183/748] texlive-rcs-12:svn15878-4.fc4 100% | 45.6 MiB/s | 139.9 KiB | 00m00s [184/748] texlive-sansmath-12:svn77682- 100% | 61.2 MiB/s | 188.1 KiB | 00m00s [185/748] texlive-section-12:svn20180-4 100% | 119.7 MiB/s | 367.6 KiB | 00m00s [186/748] texlive-ntgclass-12:svn77239- 100% | 32.9 MiB/s | 1.8 MiB | 00m00s [187/748] texlive-seminar-12:svn77682-4 100% | 94.3 MiB/s | 386.1 KiB | 00m00s [188/748] texlive-setspace-12:svn77682- 100% | 69.1 MiB/s | 212.4 KiB | 00m00s [189/748] texlive-sepnum-12:svn20186-4. 100% | 87.9 MiB/s | 360.0 KiB | 00m00s [190/748] texlive-textcase-12:svn77682- 100% | 76.6 MiB/s | 235.3 KiB | 00m00s [191/748] texlive-subfig-12:svn77682-4. 100% | 114.0 MiB/s | 466.9 KiB | 00m00s [192/748] texlive-thumbpdf-12:svn62518- 100% | 42.2 MiB/s | 43.2 KiB | 00m00s [193/748] texlive-translator-12:svn7768 100% | 143.9 MiB/s | 294.8 KiB | 00m00s [194/748] texlive-typehtml-12:svn17134- 100% | 42.1 MiB/s | 172.3 KiB | 00m00s [195/748] texlive-ucharcat-12:svn78415- 100% | 41.5 MiB/s | 170.1 KiB | 00m00s [196/748] texlive-underscore-12:svn7768 100% | 83.4 MiB/s | 256.2 KiB | 00m00s [197/748] texlive-xcolor-12:svn77682-4. 100% | 114.9 MiB/s | 941.2 KiB | 00m00s [198/748] texlive-unicode-math-12:svn78 100% | 190.1 MiB/s | 3.2 MiB | 00m00s [199/748] texlive-xfrac-12:svn77682-4.f 100% | 103.9 MiB/s | 638.6 KiB | 00m00s [200/748] texlive-xltxtra-12:svn77682-4 100% | 37.4 MiB/s | 114.8 KiB | 00m00s [201/748] texlive-xkeyval-12:svn77682-4 100% | 114.5 MiB/s | 586.2 KiB | 00m00s [202/748] texlive-xunicode-12:svn77682- 100% | 20.4 MiB/s | 41.8 KiB | 00m00s [203/748] texlive-texlive.infra-12:svn7 100% | 98.7 MiB/s | 303.1 KiB | 00m00s [204/748] texlive-gsftopk-12:svn52851-1 100% | 18.4 MiB/s | 37.7 KiB | 00m00s [205/748] texlive-hycolor-12:svn77682-5 100% | 124.2 MiB/s | 381.4 KiB | 00m00s [206/748] texlive-luatex-12:svn78218-11 100% | 204.7 MiB/s | 3.9 MiB | 00m00s [207/748] texlive-hyperref-12:svn78811- 100% | 167.6 MiB/s | 3.5 MiB | 00m00s [208/748] texlive-iftex-12:svn77682-12. 100% | 47.0 MiB/s | 240.7 KiB | 00m00s [209/748] texlive-kvoptions-12:svn77682 100% | 239.8 MiB/s | 491.1 KiB | 00m00s [210/748] texlive-ltxcmds-12:svn77682-5 100% | 133.9 MiB/s | 411.4 KiB | 00m00s [211/748] texlive-pdfescape-12:svn77682 100% | 114.1 MiB/s | 350.4 KiB | 00m00s [212/748] texlive-pdftexcmds-12:svn7768 100% | 94.8 MiB/s | 388.4 KiB | 00m00s [213/748] texlive-amscls-12:svn77682-5. 100% | 178.0 MiB/s | 1.1 MiB | 00m00s [214/748] texlive-amsmath-12:svn78101-5 100% | 128.5 MiB/s | 2.3 MiB | 00m00s [215/748] texlive-amsfonts-12:svn77682- 100% | 176.9 MiB/s | 4.8 MiB | 00m00s [216/748] texlive-atbegshi-12:svn77682- 100% | 66.1 MiB/s | 406.3 KiB | 00m00s [217/748] texlive-etoolbox-12:svn77682- 100% | 122.9 MiB/s | 251.8 KiB | 00m00s [218/748] texlive-geometry-12:svn78315- 100% | 105.8 MiB/s | 866.9 KiB | 00m00s [219/748] texlive-sansmathaccent-12:svn 100% | 45.6 MiB/s | 187.0 KiB | 00m00s [220/748] texlive-ae-12:svn15878-5.fc45 100% | 38.8 MiB/s | 119.2 KiB | 00m00s [221/748] texlive-atveryend-12:svn77682 100% | 56.2 MiB/s | 288.0 KiB | 00m00s [222/748] texlive-auxhook-12:svn77682-5 100% | 71.3 MiB/s | 292.2 KiB | 00m00s [223/748] texlive-babel-english-12:svn7 100% | 47.3 MiB/s | 145.3 KiB | 00m00s [224/748] texlive-babel-12:svn78713-5.f 100% | 159.0 MiB/s | 1.7 MiB | 00m00s [225/748] texlive-babelbib-12:svn76790- 100% | 111.3 MiB/s | 1.2 MiB | 00m00s [226/748] texlive-pgf-12:svn78101-4.fc4 100% | 178.0 MiB/s | 10.9 MiB | 00m00s [227/748] texlive-bigintcalc-12:svn7768 100% | 41.1 MiB/s | 463.4 KiB | 00m00s [228/748] texlive-bitset-12:svn77682-5. 100% | 100.5 MiB/s | 617.8 KiB | 00m00s [229/748] texlive-bookmark-12:svn77682- 100% | 78.7 MiB/s | 483.4 KiB | 00m00s [230/748] texlive-carlisle-12:svn59577- 100% | 47.0 MiB/s | 96.2 KiB | 00m00s [231/748] texlive-collection-basic-12:s 100% | 4.3 MiB/s | 8.9 KiB | 00m00s [232/748] texlive-colortbl-12:svn77682- 100% | 156.2 MiB/s | 639.6 KiB | 00m00s [233/748] texlive-epstopdf-pkg-12:svn77 100% | 70.6 MiB/s | 361.7 KiB | 00m00s [234/748] texlive-etexcmds-12:svn78101- 100% | 100.1 MiB/s | 307.6 KiB | 00m00s [235/748] texlive-firstaid-12:svn76740- 100% | 48.6 MiB/s | 298.3 KiB | 00m00s [236/748] texlive-fix2col-12:svn38770-5 100% | 72.6 MiB/s | 223.0 KiB | 00m00s [237/748] texlive-gettitlestring-12:svn 100% | 158.5 MiB/s | 324.7 KiB | 00m00s [238/748] texlive-graphics-cfg-12:svn41 100% | 10.6 MiB/s | 10.9 KiB | 00m00s [239/748] texlive-graphics-12:svn78282- 100% | 216.5 MiB/s | 2.4 MiB | 00m00s [240/748] texlive-grfext-12:svn77682-5. 100% | 102.5 MiB/s | 314.9 KiB | 00m00s [241/748] texlive-fancyhdr-12:svn78348- 100% | 38.0 MiB/s | 1.3 MiB | 00m00s [242/748] texlive-hopatch-12:svn65491-5 100% | 159.1 MiB/s | 325.9 KiB | 00m00s [243/748] texlive-hypcap-12:svn77682-5. 100% | 73.3 MiB/s | 300.4 KiB | 00m00s [244/748] texlive-intcalc-12:svn77682-5 100% | 104.9 MiB/s | 429.5 KiB | 00m00s [245/748] texlive-kvsetkeys-12:svn77682 100% | 193.3 MiB/s | 395.8 KiB | 00m00s [246/748] texlive-kvdefinekeys-12:svn77 100% | 74.1 MiB/s | 303.5 KiB | 00m00s [247/748] texlive-l3backend-12:svn78544 100% | 168.5 MiB/s | 862.7 KiB | 00m00s [248/748] texlive-l3packages-12:svn7663 100% | 125.1 MiB/s | 1.4 MiB | 00m00s [249/748] texlive-latex-fonts-12:svn288 100% | 17.0 MiB/s | 52.2 KiB | 00m00s [250/748] texlive-latex-lab-12:svn76739 100% | 178.8 MiB/s | 5.5 MiB | 00m00s [251/748] texlive-l3kernel-12:svn78545- 100% | 187.0 MiB/s | 11.8 MiB | 00m00s [252/748] texlive-latexconfig-12:svn689 100% | 8.1 MiB/s | 16.7 KiB | 00m00s [253/748] texlive-letltxmacro-12:svn776 100% | 58.1 MiB/s | 297.4 KiB | 00m00s [254/748] texlive-ltxmisc-12:svn75878-5 100% | 8.9 MiB/s | 36.6 KiB | 00m00s [255/748] texlive-lua-uni-algos-12:svn7 100% | 25.2 MiB/s | 103.1 KiB | 00m00s [256/748] texlive-mfnfss-12:svn77682-5. 100% | 73.6 MiB/s | 452.1 KiB | 00m00s [257/748] texlive-mptopdf-12:svn78010-1 100% | 26.9 MiB/s | 55.0 KiB | 00m00s [258/748] texlive-natbib-12:svn77682-5. 100% | 143.9 MiB/s | 442.1 KiB | 00m00s [259/748] texlive-latex-12:svn76924-113 100% | 222.1 MiB/s | 35.8 MiB | 00m00s [260/748] texlive-pagesel-12:svn77682-5 100% | 82.4 MiB/s | 337.6 KiB | 00m00s [261/748] texlive-pdfmanagement-12:svn7 100% | 222.6 MiB/s | 4.5 MiB | 00m00s [262/748] texlive-pslatex-12:svn67469-5 100% | 11.2 MiB/s | 22.9 KiB | 00m00s [263/748] texlive-psnfss-12:svn77682-5. 100% | 154.5 MiB/s | 316.4 KiB | 00m00s [264/748] texlive-pspicture-12:svn15878 100% | 57.4 MiB/s | 58.8 KiB | 00m00s [265/748] texlive-refcount-12:svn77682- 100% | 162.3 MiB/s | 332.4 KiB | 00m00s [266/748] texlive-rerunfilecheck-12:svn 100% | 164.6 MiB/s | 337.1 KiB | 00m00s [267/748] texlive-stringenc-12:svn77682 100% | 170.9 MiB/s | 699.9 KiB | 00m00s [268/748] texlive-tagpdf-12:svn78799-5. 100% | 212.7 MiB/s | 3.0 MiB | 00m00s [269/748] texlive-tools-12:svn76708-5.f 100% | 254.3 MiB/s | 6.1 MiB | 00m00s [270/748] texlive-uniquecounter-12:svn7 100% | 97.0 MiB/s | 297.9 KiB | 00m00s [271/748] texlive-url-12:svn77682-5.fc4 100% | 90.7 MiB/s | 278.6 KiB | 00m00s [272/748] texlive-transparent-12:svn776 100% | 27.6 MiB/s | 282.8 KiB | 00m00s [273/748] texlive-oberdiek-12:svn78315- 100% | 32.0 MiB/s | 7.1 MiB | 00m00s [274/748] texlive-currfile-12:svn77682- 100% | 38.0 MiB/s | 194.4 KiB | 00m00s [275/748] texlive-pstricks-12:svn78101- 100% | 140.2 MiB/s | 10.9 MiB | 00m00s [276/748] texlive-lm-12:svn77682-9.fc45 100% | 164.1 MiB/s | 14.4 MiB | 00m00s [277/748] texlive-luaotfload-12:svn7432 100% | 53.1 MiB/s | 1.2 MiB | 00m00s [278/748] texlive-xpatch-12:svn77682-7. 100% | 115.3 MiB/s | 472.3 KiB | 00m00s [279/748] texlive-finstrut-12:svn21719- 100% | 61.3 MiB/s | 188.4 KiB | 00m00s [280/748] texlive-ltabptch-12:svn17533- 100% | 90.4 MiB/s | 277.9 KiB | 00m00s [281/748] texlive-xurl-12:svn77682-7.fc 100% | 31.5 MiB/s | 64.5 KiB | 00m00s [282/748] texlive-algorithms-12:svn7810 100% | 29.1 MiB/s | 298.0 KiB | 00m00s [283/748] texlive-pdfcol-12:svn64469-7. 100% | 52.8 MiB/s | 324.6 KiB | 00m00s [284/748] texlive-mnsymbol-12:svn18651- 100% | 149.7 MiB/s | 4.6 MiB | 00m00s [285/748] texlive-bidi-12:svn77682-7.fc 100% | 160.5 MiB/s | 4.0 MiB | 00m00s [286/748] texlive-luabidi-12:svn78654-7 100% | 29.9 MiB/s | 153.1 KiB | 00m00s [287/748] texlive-makecmds-12:svn77682- 100% | 41.9 MiB/s | 128.7 KiB | 00m00s [288/748] texlive-unibidi-lua-12:svn786 100% | 27.2 MiB/s | 83.5 KiB | 00m00s [289/748] texlive-pst-ovl-12:svn77682-3 100% | 15.2 MiB/s | 46.8 KiB | 00m00s [290/748] texlive-footmisc-12:svn77682- 100% | 109.7 MiB/s | 561.7 KiB | 00m00s [291/748] texlive-chicago-12:svn77682-9 100% | 9.5 MiB/s | 19.5 KiB | 00m00s [292/748] texlive-lm-math-12:svn67718-9 100% | 131.4 MiB/s | 538.4 KiB | 00m00s [293/748] texlive-lualatex-math-12:svn7 100% | 69.2 MiB/s | 212.5 KiB | 00m00s [294/748] texlive-pdfcolmk-12:svn78793- 100% | 16.1 MiB/s | 16.4 KiB | 00m00s [295/748] texlive-realscripts-12:svn776 100% | 38.5 MiB/s | 118.2 KiB | 00m00s [296/748] perl-Text-Unidecode-0:1.30-29 100% | 3.6 MiB/s | 181.1 KiB | 00m00s [297/748] perl-XML-Parser-0:2.59-4.fc45 100% | 82.0 MiB/s | 251.9 KiB | 00m00s [298/748] perl-XML-XPath-0:1.49-2.fc45. 100% | 28.9 MiB/s | 88.9 KiB | 00m00s [299/748] texlive-cm-12:svn57963-12.fc4 100% | 106.2 MiB/s | 326.2 KiB | 00m00s [300/748] texlive-etex-12:svn77830-12.f 100% | 166.9 MiB/s | 341.9 KiB | 00m00s [301/748] texlive-graphics-def-12:svn76 100% | 25.9 MiB/s | 26.5 KiB | 00m00s [302/748] texlive-hyph-utf8-12:svn78069 100% | 72.2 MiB/s | 295.8 KiB | 00m00s [303/748] texlive-hyphen-base-12:svn780 100% | 18.1 MiB/s | 37.1 KiB | 00m00s [304/748] texlive-knuth-lib-12:svn57963 100% | 49.2 MiB/s | 50.4 KiB | 00m00s [305/748] texlive-plain-12:svn75712-12. 100% | 20.3 MiB/s | 41.6 KiB | 00m00s [306/748] texlive-tex-ini-files-12:svn7 100% | 8.5 MiB/s | 17.4 KiB | 00m00s [307/748] texlive-unicode-data-12:svn76 100% | 182.9 MiB/s | 374.5 KiB | 00m00s [308/748] texlive-minitoc-12:svn77682-7 100% | 292.9 MiB/s | 6.2 MiB | 00m00s [309/748] texlive-ntheorem-12:svn77682- 100% | 140.9 MiB/s | 432.8 KiB | 00m00s [310/748] texlive-zapfding-12:svn77161- 100% | 61.7 MiB/s | 63.2 KiB | 00m00s [311/748] texlive-etex-pkg-12:svn77682- 100% | 10.2 MiB/s | 20.9 KiB | 00m00s [312/748] texlive-hyphen-english-12:svn 100% | 26.6 MiB/s | 54.5 KiB | 00m00s [313/748] texlive-bibtex-12:svn77830-11 100% | 158.6 MiB/s | 487.1 KiB | 00m00s [314/748] texlive-colorprofiles-12:svn4 100% | 70.8 MiB/s | 145.0 KiB | 00m00s [315/748] texlive-dvipdfmx-12:svn77942- 100% | 187.2 MiB/s | 3.0 MiB | 00m00s [316/748] texlive-dvips-12:svn77830-113 100% | 144.8 MiB/s | 741.4 KiB | 00m00s [317/748] texlive-ec-12:svn25033-12.fc4 100% | 143.7 MiB/s | 735.9 KiB | 00m00s [318/748] texlive-enctex-12:svn34957-12 100% | 96.1 MiB/s | 295.1 KiB | 00m00s [319/748] texlive-extractbb-12:svn77855 100% | 14.2 MiB/s | 29.2 KiB | 00m00s [320/748] texlive-glyphlist-12:svn54074 100% | 7.9 MiB/s | 40.3 KiB | 00m00s [321/748] texlive-hyphenex-12:svn57387- 100% | 8.6 MiB/s | 17.6 KiB | 00m00s [322/748] texlive-ifplatform-12:svn7768 100% | 80.0 MiB/s | 163.8 KiB | 00m00s [323/748] texlive-knuth-local-12:svn579 100% | 21.3 MiB/s | 43.6 KiB | 00m00s [324/748] texlive-lua-alt-getopt-12:svn 100% | 7.3 MiB/s | 15.0 KiB | 00m00s [325/748] texlive-luahbtex-12:svn77830- 100% | 167.2 MiB/s | 2.0 MiB | 00m00s [326/748] texlive-makeindex-12:svn75712 100% | 106.1 MiB/s | 434.4 KiB | 00m00s [327/748] texlive-metafont-12:svn77830- 100% | 89.5 MiB/s | 274.8 KiB | 00m00s [328/748] texlive-mflogo-12:svn77682-12 100% | 81.2 MiB/s | 249.5 KiB | 00m00s [329/748] texlive-mfware-12:svn77830-11 100% | 50.8 MiB/s | 104.1 KiB | 00m00s [330/748] texlive-modes-12:svn77365-12. 100% | 95.4 MiB/s | 293.2 KiB | 00m00s [331/748] texlive-tipa-12:svn77682-9.fc 100% | 23.5 MiB/s | 5.0 MiB | 00m00s [332/748] texlive-pdftex-12:svn77868-11 100% | 201.4 MiB/s | 3.6 MiB | 00m00s [333/748] texlive-tex-12:svn77830-113.f 100% | 52.7 MiB/s | 215.7 KiB | 00m00s [334/748] texlive-texlive-en-12:svn7803 100% | 144.4 MiB/s | 1.9 MiB | 00m00s [335/748] texlive-texlive-msg-translati 100% | 55.9 MiB/s | 171.7 KiB | 00m00s [336/748] texlive-xdvi-12:svn62387-113. 100% | 113.7 MiB/s | 349.4 KiB | 00m00s [337/748] texlive-texlive-common-12:svn 100% | 23.4 MiB/s | 503.0 KiB | 00m00s [338/748] texlive-epstopdf-12:svn71782- 100% | 17.0 MiB/s | 34.7 KiB | 00m00s [339/748] texlive-hypdoc-12:svn68661-7. 100% | 108.9 MiB/s | 334.4 KiB | 00m00s [340/748] texlive-beton-12:svn77682-7.f 100% | 24.7 MiB/s | 75.8 KiB | 00m00s [341/748] texlive-citeref-12:svn47407-9 100% | 24.5 MiB/s | 75.3 KiB | 00m00s [342/748] texlive-parallel-12:svn77682- 100% | 42.9 MiB/s | 131.8 KiB | 00m00s [343/748] texlive-sauerj-12:svn15878-7. 100% | 76.9 MiB/s | 550.9 KiB | 00m00s [344/748] texlive-zref-12:svn78317-7.fc 100% | 109.0 MiB/s | 669.5 KiB | 00m00s [345/748] texlive-symbol-12:svn77161-9. 100% | 17.4 MiB/s | 53.4 KiB | 00m00s [346/748] texlive-multido-12:svn77682-5 100% | 39.9 MiB/s | 122.5 KiB | 00m00s [347/748] texlive-pst-3d-12:svn77682-3. 100% | 22.7 MiB/s | 116.5 KiB | 00m00s [348/748] texlive-pst-calculate-12:svn7 100% | 15.7 MiB/s | 48.3 KiB | 00m00s [349/748] texlive-pst-coil-12:svn77682- 100% | 126.4 MiB/s | 3.5 MiB | 00m00s [350/748] texlive-pst-eps-12:svn77682-3 100% | 31.0 MiB/s | 95.2 KiB | 00m00s [351/748] texlive-pst-fill-12:svn77682- 100% | 137.1 MiB/s | 842.5 KiB | 00m00s [352/748] texlive-pst-grad-12:svn77682- 100% | 56.1 MiB/s | 229.7 KiB | 00m00s [353/748] texlive-pst-node-12:svn77682- 100% | 119.0 MiB/s | 731.3 KiB | 00m00s [354/748] texlive-pst-pdf-12:svn77682-1 100% | 155.8 MiB/s | 957.1 KiB | 00m00s [355/748] texlive-pst-plot-12:svn77682- 100% | 122.0 MiB/s | 1.3 MiB | 00m00s [356/748] texlive-pst-text-12:svn77682- 100% | 25.8 MiB/s | 185.3 KiB | 00m00s [357/748] texlive-pst-tree-12:svn77682- 100% | 71.8 MiB/s | 220.4 KiB | 00m00s [358/748] texlive-pstricks-add-12:svn77 100% | 178.2 MiB/s | 10.5 MiB | 00m00s [359/748] texlive-lualibs-12:svn78415-4 100% | 14.7 MiB/s | 241.0 KiB | 00m00s [360/748] linuxdoc-tools-0:0.9.85-4.fc4 100% | 113.4 KiB/s | 158.4 KiB | 00m01s [361/748] texlive-luatexbase-12:svn7768 100% | 44.7 MiB/s | 274.8 KiB | 00m00s [362/748] texlive-changepage-12:svn7768 100% | 56.0 MiB/s | 286.5 KiB | 00m00s [363/748] texlive-paralist-12:svn77682- 100% | 43.2 MiB/s | 221.1 KiB | 00m00s [364/748] texlive-placeins-12:svn77682- 100% | 63.7 MiB/s | 261.0 KiB | 00m00s [365/748] texlive-showexpl-12:svn77682- 100% | 98.5 MiB/s | 605.1 KiB | 00m00s [366/748] texlive-titlesec-12:svn77682- 100% | 75.0 MiB/s | 690.8 KiB | 00m00s [367/748] texlive-xifthen-12:svn77682-7 100% | 94.7 MiB/s | 485.0 KiB | 00m00s [368/748] perl-File-ShareDir-0:1.118-16 100% | 14.5 MiB/s | 29.6 KiB | 00m00s [369/748] texlive-cm-super-12:svn15878- 100% | 219.0 MiB/s | 61.8 MiB | 00m00s [370/748] perl-libwww-perl-0:6.83-2.fc4 100% | 3.6 MiB/s | 210.4 KiB | 00m00s [371/748] texlive-bigfoot-12:svn77682-7 100% | 11.4 MiB/s | 733.8 KiB | 00m00s [372/748] texlive-notoccite-12:svn77682 100% | 75.0 MiB/s | 230.4 KiB | 00m00s [373/748] texlive-catchfile-12:svn77682 100% | 99.3 MiB/s | 305.1 KiB | 00m00s [374/748] texlive-dehyph-12:svn48599-8. 100% | 61.3 MiB/s | 62.7 KiB | 00m00s [375/748] rubypick-0:1.1.1-25.fc45.noar 100% | 1.9 MiB/s | 9.9 KiB | 00m00s [376/748] libXaw-0:1.0.16-6.fc45.x86_64 100% | 65.2 MiB/s | 200.3 KiB | 00m00s [377/748] libXi-0:1.8.3-2.fc45.x86_64 100% | 13.4 MiB/s | 41.3 KiB | 00m00s [378/748] libXmu-0:1.2.1-6.fc45.x86_64 100% | 38.6 MiB/s | 79.1 KiB | 00m00s [379/748] texlive-makerobust-12:svn7810 100% | 26.2 MiB/s | 80.5 KiB | 00m00s [380/748] tex-preview-0:14.2.0-1.fc46.n 100% | 68.2 MiB/s | 349.1 KiB | 00m00s [381/748] texlive-siunitx-12:svn78712-3 100% | 100.7 MiB/s | 825.3 KiB | 00m00s [382/748] texlive-environ-12:svn77682-7 100% | 54.7 MiB/s | 168.1 KiB | 00m00s [383/748] texlive-luatex85-12:svn77682- 100% | 44.3 MiB/s | 181.4 KiB | 00m00s [384/748] texlive-pst-math-12:svn77682- 100% | 47.2 MiB/s | 241.5 KiB | 00m00s [385/748] texlive-ctablestack-12:svn781 100% | 39.6 MiB/s | 162.2 KiB | 00m00s [386/748] texlive-varwidth-12:svn77682- 100% | 43.1 MiB/s | 44.2 KiB | 00m00s [387/748] texlive-ifmtarg-12:svn77682-7 100% | 25.1 MiB/s | 51.4 KiB | 00m00s [388/748] perl-Class-Inspector-0:1.36-2 100% | 14.8 MiB/s | 30.4 KiB | 00m00s [389/748] perl-Data-Dump-0:1.25-15.fc45 100% | 31.9 MiB/s | 32.6 KiB | 00m00s [390/748] perl-Encode-Locale-0:1.05-34. 100% | 17.9 MiB/s | 18.3 KiB | 00m00s [391/748] perl-File-Listing-0:6.16-8.fc 100% | 11.9 MiB/s | 24.4 KiB | 00m00s [392/748] perl-HTML-Parser-0:3.86-1.fc4 100% | 60.9 MiB/s | 124.8 KiB | 00m00s [393/748] perl-HTTP-Cookies-0:6.12-1.fc 100% | 18.6 MiB/s | 38.0 KiB | 00m00s [394/748] perl-HTTP-Date-0:6.08-2.fc45. 100% | 12.4 MiB/s | 25.3 KiB | 00m00s [395/748] perl-HTTP-Message-0:7.04-1.fc 100% | 33.1 MiB/s | 101.7 KiB | 00m00s [396/748] perl-HTTP-Negotiate-0:6.01-43 100% | 18.9 MiB/s | 19.3 KiB | 00m00s [397/748] perl-LWP-MediaTypes-0:6.05-1. 100% | 16.2 MiB/s | 33.1 KiB | 00m00s [398/748] texlive-xetex-12:svn77830-113 100% | 22.2 MiB/s | 1.3 MiB | 00m00s [399/748] perl-Module-Load-1:0.36-527.f 100% | 16.6 MiB/s | 17.0 KiB | 00m00s [400/748] perl-NTLM-0:1.09-43.fc45.noar 100% | 21.0 MiB/s | 21.5 KiB | 00m00s [401/748] perl-Net-HTTP-0:6.24-3.fc45.n 100% | 19.4 MiB/s | 39.7 KiB | 00m00s [402/748] perl-Try-Tiny-0:0.32-5.fc45.n 100% | 36.6 MiB/s | 37.5 KiB | 00m00s [403/748] perl-WWW-RobotRules-0:6.03-3. 100% | 13.0 MiB/s | 26.7 KiB | 00m00s [404/748] perl-I18N-Langinfo-0:0.24-527 100% | 24.7 MiB/s | 25.3 KiB | 00m00s [405/748] texlive-xetexconfig-12:svn458 100% | 4.7 MiB/s | 14.4 KiB | 00m00s [406/748] libXext-0:1.3.6-6.fc45.x86_64 100% | 7.8 MiB/s | 40.1 KiB | 00m00s [407/748] texlive-trimspaces-12:svn7768 100% | 17.4 MiB/s | 160.6 KiB | 00m00s [408/748] texlive-xstring-12:svn77682-7 100% | 40.3 MiB/s | 577.5 KiB | 00m00s [409/748] libicu-0:78.3-8.fc45.x86_64 100% | 222.4 MiB/s | 11.1 MiB | 00m00s [410/748] perl-HTML-Tagset-0:3.24-6.fc4 100% | 1.1 MiB/s | 18.2 KiB | 00m00s [411/748] texlive-ncctools-12:svn51810- 100% | 27.7 MiB/s | 2.4 MiB | 00m00s [412/748] perl-TimeDate-1:2.35-2.fc45.n 100% | 35.2 MiB/s | 108.0 KiB | 00m00s [413/748] perl-Clone-0:0.50-3.fc45.x86_ 100% | 11.4 MiB/s | 35.0 KiB | 00m00s [414/748] perl-Compress-Raw-Zlib-0:2.22 100% | 33.5 MiB/s | 68.6 KiB | 00m00s [415/748] perl-IO-HTML-0:1.004-17.fc45. 100% | 26.8 MiB/s | 27.4 KiB | 00m00s [416/748] perl-IO-Compress-0:2.224-1.fc 100% | 152.9 MiB/s | 313.1 KiB | 00m00s [417/748] mailcap-0:2.1.54-11.fc45.noar 100% | 33.1 MiB/s | 33.8 KiB | 00m00s [418/748] perl-Digest-HMAC-0:1.05-5.fc4 100% | 11.1 MiB/s | 22.8 KiB | 00m00s [419/748] perl-Compress-Raw-Bzip2-0:2.2 100% | 18.5 MiB/s | 37.9 KiB | 00m00s [420/748] perl-Digest-SHA-1:6.04-528.fc 100% | 29.8 MiB/s | 61.1 KiB | 00m00s [421/748] perl-DirHandle-0:1.05-527.fc4 100% | 11.9 MiB/s | 12.1 KiB | 00m00s [422/748] ncurses-c++-libs-0:6.6-3.fc46 100% | 8.6 MiB/s | 35.2 KiB | 00m00s [423/748] groff-0:1.24.1-2.fc46.x86_64 100% | 262.8 MiB/s | 1.3 MiB | 00m00s [424/748] perl-File-Copy-0:2.43-527.fc4 100% | 9.6 MiB/s | 19.7 KiB | 00m00s [425/748] perl-lib-0:0.65-527.fc45.x86_ 100% | 7.1 MiB/s | 14.6 KiB | 00m00s [426/748] perl-subs-0:1.04-527.fc45.noa 100% | 5.6 MiB/s | 11.4 KiB | 00m00s [427/748] teckit-0:2.5.13-3.fc46.x86_64 100% | 120.5 MiB/s | 370.1 KiB | 00m00s [428/748] m4-0:1.4.21-3.fc45.x86_64 100% | 84.8 MiB/s | 347.2 KiB | 00m00s [429/748] libXpm-0:3.5.19-4.fc46.x86_64 100% | 22.7 MiB/s | 69.6 KiB | 00m00s [430/748] ghostscript-0:10.08.0-1.fc46. 100% | 10.3 MiB/s | 31.7 KiB | 00m00s [431/748] perl-File-Find-0:1.44-527.fc4 100% | 12.2 MiB/s | 25.0 KiB | 00m00s [432/748] zziplib-0:0.13.78-6.fc46.x86_ 100% | 42.2 MiB/s | 86.4 KiB | 00m00s [433/748] ruby-0:4.0.7-40.fc46.x86_64 100% | 7.0 MiB/s | 43.0 KiB | 00m00s [434/748] perl-open-0:1.13-527.fc45.noa 100% | 4.0 MiB/s | 16.2 KiB | 00m00s [435/748] perl-encoding-4:3.00-527.fc45 100% | 12.3 MiB/s | 62.9 KiB | 00m00s [436/748] perl-Filter-2:1.65-527.fc45.x 100% | 16.9 MiB/s | 86.6 KiB | 00m00s [437/748] krb5-devel-0:1.22.2-9.fc45.x8 100% | 35.0 MiB/s | 143.2 KiB | 00m00s [438/748] libkadm5-0:1.22.2-9.fc45.x86_ 100% | 15.6 MiB/s | 80.0 KiB | 00m00s [439/748] keyutils-libs-devel-0:1.6.3-8 100% | 18.6 MiB/s | 57.3 KiB | 00m00s [440/748] libcom_err-devel-0:1.47.4-2.f 100% | 8.0 MiB/s | 16.3 KiB | 00m00s [441/748] libverto-devel-0:0.3.2-13.fc4 100% | 7.0 MiB/s | 14.3 KiB | 00m00s [442/748] libselinux-devel-0:3.11-5.fc4 100% | 52.3 MiB/s | 160.7 KiB | 00m00s [443/748] ghostscript-tools-fontutils-0 100% | 5.6 MiB/s | 11.4 KiB | 00m00s [444/748] ghostscript-tools-printing-0: 100% | 5.7 MiB/s | 11.8 KiB | 00m00s [445/748] libsepol-devel-0:3.11-2.fc46. 100% | 19.6 MiB/s | 40.2 KiB | 00m00s [446/748] pcre2-devel-0:10.47-1.fc46.2. 100% | 128.7 MiB/s | 527.3 KiB | 00m00s [447/748] pcre2-utf16-0:10.47-1.fc46.2. 100% | 114.7 MiB/s | 235.0 KiB | 00m00s [448/748] ruby-libs-0:4.0.7-40.fc46.x86 100% | 126.0 MiB/s | 4.4 MiB | 00m00s [449/748] pcre2-utf32-0:10.47-1.fc46.2. 100% | 44.0 MiB/s | 225.4 KiB | 00m00s [450/748] texlive-appendix-12:svn78101- 100% | 45.2 MiB/s | 324.3 KiB | 00m00s [451/748] dblatex-0:0.3.12-33.fc45.noar 100% | 91.7 MiB/s | 1.1 MiB | 00m00s [452/748] texlive-bibtopic-12:svn77682- 100% | 29.2 MiB/s | 239.3 KiB | 00m00s [453/748] texlive-collection-fontsrecom 100% | 3.9 MiB/s | 8.0 KiB | 00m00s [454/748] texlive-collection-xetex-12:s 100% | 4.1 MiB/s | 8.3 KiB | 00m00s [455/748] texlive-changebar-12:svn77682 100% | 103.8 MiB/s | 637.7 KiB | 00m00s [456/748] texlive-overpic-12:svn77682-7 100% | 99.0 MiB/s | 405.7 KiB | 00m00s [457/748] texlive-passivetex-12:svn6974 100% | 18.8 MiB/s | 57.9 KiB | 00m00s [458/748] texlive-subfigure-12:svn15878 100% | 115.5 MiB/s | 354.9 KiB | 00m00s [459/748] texlive-stmaryrd-12:svn77682- 100% | 65.5 MiB/s | 268.3 KiB | 00m00s [460/748] texlive-wasysym-12:svn77682-9 100% | 86.0 MiB/s | 176.2 KiB | 00m00s [461/748] texlive-xmltex-12:svn76924-11 100% | 28.6 MiB/s | 58.6 KiB | 00m00s [462/748] texlive-avantgar-12:svn77161- 100% | 78.7 MiB/s | 322.2 KiB | 00m00s [463/748] texlive-bookman-12:svn77161-9 100% | 72.0 MiB/s | 368.5 KiB | 00m00s [464/748] texlive-charter-12:svn15878-9 100% | 66.9 MiB/s | 205.5 KiB | 00m00s [465/748] texlive-cmextra-12:svn57866-9 100% | 23.0 MiB/s | 47.1 KiB | 00m00s [466/748] texlive-euro-ce-12:svn25714-9 100% | 9.3 MiB/s | 28.6 KiB | 00m00s [467/748] texlive-courier-12:svn77161-9 100% | 128.5 MiB/s | 526.5 KiB | 00m00s [468/748] texlive-euro-12:svn22191-9.fc 100% | 69.0 MiB/s | 212.1 KiB | 00m00s [469/748] texlive-eurosym-12:svn78101-9 100% | 104.4 MiB/s | 427.5 KiB | 00m00s [470/748] texlive-multirow-12:svn77682- 100% | 19.5 MiB/s | 618.1 KiB | 00m00s [471/748] texlive-fpl-12:svn54512-9.fc4 100% | 100.6 MiB/s | 308.9 KiB | 00m00s [472/748] texlive-helvetic-12:svn77161- 100% | 128.7 MiB/s | 658.9 KiB | 00m00s [473/748] texlive-manfnt-font-12:svn457 100% | 6.8 MiB/s | 34.7 KiB | 00m00s [474/748] texlive-marvosym-12:svn77682- 100% | 108.9 MiB/s | 557.6 KiB | 00m00s [475/748] texlive-mathpazo-12:svn77682- 100% | 109.2 MiB/s | 447.4 KiB | 00m00s [476/748] texlive-mflogo-font-12:svn545 100% | 7.4 MiB/s | 30.4 KiB | 00m00s [477/748] texlive-ncntrsbk-12:svn77161- 100% | 59.5 MiB/s | 365.7 KiB | 00m00s [478/748] texlive-palatino-12:svn77161- 100% | 83.5 MiB/s | 427.7 KiB | 00m00s [479/748] texlive-rsfs-12:svn15878-9.fc 100% | 24.0 MiB/s | 73.7 KiB | 00m00s [480/748] texlive-pxfonts-12:svn77682-9 100% | 130.4 MiB/s | 934.6 KiB | 00m00s [481/748] texlive-tex-gyre-math-12:svn4 100% | 106.0 MiB/s | 1.8 MiB | 00m00s [482/748] texlive-txfonts-12:svn77682-9 100% | 115.8 MiB/s | 1.4 MiB | 00m00s [483/748] texlive-utopia-12:svn77682-9. 100% | 46.9 MiB/s | 240.0 KiB | 00m00s [484/748] texlive-wasy-12:svn53533-9.fc 100% | 82.5 MiB/s | 337.9 KiB | 00m00s [485/748] texlive-wasy-type1-12:svn5353 100% | 64.8 MiB/s | 265.5 KiB | 00m00s [486/748] texlive-times-12:svn77161-9.f 100% | 8.4 MiB/s | 370.2 KiB | 00m00s [487/748] texlive-zapfchan-12:svn77161- 100% | 26.5 MiB/s | 108.5 KiB | 00m00s [488/748] texlive-bidi-atbegshi-12:svn6 100% | 42.0 MiB/s | 172.1 KiB | 00m00s [489/748] texlive-bidicontour-12:svn776 100% | 11.3 MiB/s | 46.3 KiB | 00m00s [490/748] texlive-bidipagegrid-12:svn77 100% | 13.8 MiB/s | 42.4 KiB | 00m00s [491/748] texlive-bidipresentation-12:s 100% | 37.4 MiB/s | 114.9 KiB | 00m00s [492/748] texlive-bidishadowtext-12:svn 100% | 43.1 MiB/s | 132.5 KiB | 00m00s [493/748] texlive-tex-gyre-12:svn68624- 100% | 174.0 MiB/s | 18.6 MiB | 00m00s [494/748] texlive-businesscard-qrcode-1 100% | 13.5 MiB/s | 551.6 KiB | 00m00s [495/748] texlive-arabxetex-12:svn77682 100% | 11.8 MiB/s | 774.0 KiB | 00m00s [496/748] texlive-ctex-faq-12:svn15878- 100% | 52.3 MiB/s | 482.4 KiB | 00m00s [497/748] texlive-fixlatvian-12:svn2163 100% | 31.5 MiB/s | 129.1 KiB | 00m00s [498/748] texlive-cqubeamer-12:svn54512 100% | 120.3 MiB/s | 2.4 MiB | 00m00s [499/748] texlive-ctex-12:svn77682-11.f 100% | 63.9 MiB/s | 1.3 MiB | 00m00s [500/748] texlive-font-change-xetex-12: 100% | 68.7 MiB/s | 563.1 KiB | 00m00s [501/748] texlive-interchar-12:svn77682 100% | 25.0 MiB/s | 102.6 KiB | 00m00s [502/748] texlive-fontwrap-12:svn15878- 100% | 47.3 MiB/s | 290.3 KiB | 00m00s [503/748] texlive-fontbook-12:svn23608- 100% | 120.2 MiB/s | 1.2 MiB | 00m00s [504/748] texlive-na-position-12:svn555 100% | 31.9 MiB/s | 98.0 KiB | 00m00s [505/748] texlive-philokalia-12:svn4535 100% | 89.4 MiB/s | 183.2 KiB | 00m00s [506/748] texlive-ptext-12:svn77682-11. 100% | 44.1 MiB/s | 90.2 KiB | 00m00s [507/748] texlive-simple-resume-cv-12:s 100% | 20.7 MiB/s | 105.8 KiB | 00m00s [508/748] texlive-tetragonos-12:svn4973 100% | 91.1 MiB/s | 373.3 KiB | 00m00s [509/748] texlive-shtthesis-12:svn62441 100% | 146.4 MiB/s | 2.1 MiB | 00m00s [510/748] texlive-simple-thesis-dissert 100% | 16.9 MiB/s | 208.0 KiB | 00m00s [511/748] texlive-ucharclasses-12:svn77 100% | 38.0 MiB/s | 155.5 KiB | 00m00s [512/748] texlive-unicode-bidi-12:svn77 100% | 7.8 MiB/s | 15.9 KiB | 00m00s [513/748] texlive-unisugar-12:svn22357- 100% | 149.9 MiB/s | 460.4 KiB | 00m00s [514/748] texlive-unimath-plain-xetex-1 100% | 125.9 MiB/s | 515.8 KiB | 00m00s [515/748] texlive-xechangebar-12:svn776 100% | 7.4 MiB/s | 22.7 KiB | 00m00s [516/748] texlive-xecolor-12:svn77682-1 100% | 5.6 MiB/s | 17.1 KiB | 00m00s [517/748] texlive-xecjk-12:svn77682-11. 100% | 167.9 MiB/s | 2.0 MiB | 00m00s [518/748] texlive-xecyr-12:svn77682-11. 100% | 110.1 MiB/s | 676.4 KiB | 00m00s [519/748] texlive-xeindex-12:svn77682-1 100% | 29.8 MiB/s | 91.7 KiB | 00m00s [520/748] texlive-xesearch-12:svn77682- 100% | 149.6 MiB/s | 612.6 KiB | 00m00s [521/748] texlive-xebaposter-12:svn7529 100% | 24.3 MiB/s | 522.9 KiB | 00m00s [522/748] texlive-xespotcolor-12:svn776 100% | 37.1 MiB/s | 152.1 KiB | 00m00s [523/748] texlive-xetex-devanagari-12:s 100% | 106.7 MiB/s | 437.1 KiB | 00m00s [524/748] texlive-xetex-itrans-12:svn55 100% | 111.5 MiB/s | 456.8 KiB | 00m00s [525/748] texlive-xetex-pstricks-12:svn 100% | 2.5 MiB/s | 10.2 KiB | 00m00s [526/748] texlive-xetex-tibetan-12:svn2 100% | 85.3 MiB/s | 437.0 KiB | 00m00s [527/748] texlive-xetexfontinfo-12:svn1 100% | 3.6 MiB/s | 14.7 KiB | 00m00s [528/748] texlive-xetexko-12:svn77682-1 100% | 66.9 MiB/s | 342.7 KiB | 00m00s [529/748] texlive-xevlna-12:svn77682-11 100% | 20.8 MiB/s | 64.0 KiB | 00m00s [530/748] texlive-xetexref-12:svn73885- 100% | 59.3 MiB/s | 182.3 KiB | 00m00s [531/748] texlive-zbmath-review-templat 100% | 75.0 MiB/s | 230.3 KiB | 00m00s [532/748] texlive-ulem-12:svn77682-5.fc 100% | 57.0 MiB/s | 175.2 KiB | 00m00s [533/748] texlive-eepic-12:svn77682-4.f 100% | 28.3 MiB/s | 116.1 KiB | 00m00s [534/748] texlive-cjkpunct-12:svn41119- 100% | 31.0 MiB/s | 158.7 KiB | 00m00s [535/748] texlive-everyhook-12:svn35675 100% | 25.2 MiB/s | 129.2 KiB | 00m00s [536/748] texlive-cjk-12:svn60865-7.fc4 100% | 93.0 MiB/s | 1.6 MiB | 00m00s [537/748] texlive-adobemapping-12:svn66 100% | 109.4 MiB/s | 2.8 MiB | 00m00s [538/748] texlive-platex-tools-12:svn72 100% | 63.6 MiB/s | 586.5 KiB | 00m00s [539/748] texlive-svn-prov-12:svn77682- 100% | 41.2 MiB/s | 253.4 KiB | 00m00s [540/748] texlive-luatexja-12:svn78752- 100% | 106.7 MiB/s | 3.5 MiB | 00m00s [541/748] texlive-ttfutils-12:svn77830- 100% | 26.4 MiB/s | 297.1 KiB | 00m00s [542/748] texlive-xcjk2uni-12:svn54958- 100% | 62.4 MiB/s | 511.3 KiB | 00m00s [543/748] texlive-uptex-12:svn77830-113 100% | 106.4 MiB/s | 1.5 MiB | 00m00s [544/748] texlive-xpinyin-12:svn77682-9 100% | 67.4 MiB/s | 483.3 KiB | 00m00s [545/748] texlive-zhmetrics-uptex-12:sv 100% | 28.6 MiB/s | 146.6 KiB | 00m00s [546/748] texlive-zhnumber-12:svn77682- 100% | 50.2 MiB/s | 308.6 KiB | 00m00s [547/748] texlive-zhmetrics-12:svn22207 100% | 100.7 MiB/s | 1.6 MiB | 00m00s [548/748] texlive-was-12:svn64691-7.fc4 100% | 57.5 MiB/s | 294.2 KiB | 00m00s [549/748] texlive-perltex-12:svn73044-1 100% | 108.0 MiB/s | 442.4 KiB | 00m00s [550/748] texlive-tkz-tab-12:svn66115-4 100% | 91.5 MiB/s | 375.0 KiB | 00m00s [551/748] texlive-lettrine-12:svn77053- 100% | 66.3 MiB/s | 475.4 KiB | 00m00s [552/748] biber-0:2.22-2.fc46.noarch 100% | 49.3 MiB/s | 303.0 KiB | 00m00s [553/748] texlive-alphalph-12:svn77682- 100% | 87.6 MiB/s | 358.7 KiB | 00m00s [554/748] latexmk-0:4.88-2.fc45.noarch 100% | 56.9 MiB/s | 466.2 KiB | 00m00s [555/748] texlive-biblatex-gb7714-2015- 100% | 118.7 MiB/s | 1.7 MiB | 00m00s [556/748] texlive-datetime-12:svn36650- 100% | 64.7 MiB/s | 463.9 KiB | 00m00s [557/748] texlive-fmtcount-12:svn77682- 100% | 57.0 MiB/s | 641.6 KiB | 00m00s [558/748] texlive-lastpage-12:svn77682- 100% | 62.5 MiB/s | 576.2 KiB | 00m00s [559/748] texlive-tocvsec2-12:svn77682- 100% | 43.1 MiB/s | 309.0 KiB | 00m00s [560/748] texlive-undolabl-12:svn77682- 100% | 71.0 MiB/s | 363.3 KiB | 00m00s [561/748] texlive-biblatex-12:svn77682- 100% | 104.3 MiB/s | 7.3 MiB | 00m00s [562/748] texlive-fandol-12:svn37889-9. 100% | 119.4 MiB/s | 21.7 MiB | 00m00s [563/748] texlive-luatextra-12:svn77682 100% | 14.8 MiB/s | 317.5 KiB | 00m00s [564/748] texlive-xits-12:svn55730-7.fc 100% | 15.9 MiB/s | 602.3 KiB | 00m00s [565/748] texlive-t2-12:svn47870-9.fc45 100% | 50.6 MiB/s | 103.7 KiB | 00m00s [566/748] texlive-cjk-ko-12:svn70300-6. 100% | 45.6 MiB/s | 186.6 KiB | 00m00s [567/748] texlive-gensymb-12:svn77682-7 100% | 55.2 MiB/s | 226.0 KiB | 00m00s [568/748] texlive-tikz-cd-12:svn77682-4 100% | 47.3 MiB/s | 290.9 KiB | 00m00s [569/748] texlive-garuda-c90-12:svn6083 100% | 3.1 MiB/s | 19.1 KiB | 00m00s [570/748] texlive-norasi-c90-12:svn6083 100% | 3.1 MiB/s | 25.5 KiB | 00m00s [571/748] texlive-cns-12:svn45677-9.fc4 100% | 85.2 MiB/s | 3.4 MiB | 00m00s [572/748] texlive-uhc-12:svn16791-6.fc4 100% | 94.3 MiB/s | 4.4 MiB | 00m00s [573/748] texlive-ascmac-12:svn53411-6. 100% | 35.9 MiB/s | 183.6 KiB | 00m00s [574/748] texlive-collcell-12:svn77682- 100% | 29.0 MiB/s | 208.1 KiB | 00m00s [575/748] texlive-regexpatch-12:svn7768 100% | 58.0 MiB/s | 534.3 KiB | 00m00s [576/748] texlive-wadalab-12:svn42428-6 100% | 114.3 MiB/s | 17.4 MiB | 00m00s [577/748] texlive-sttools-12:svn77682-7 100% | 4.8 MiB/s | 565.2 KiB | 00m00s [578/748] texlive-arphic-12:svn15878-9. 100% | 115.6 MiB/s | 26.7 MiB | 00m00s [579/748] texlive-platex-12:svn77830-6. 100% | 49.9 MiB/s | 1.9 MiB | 00m00s [580/748] texlive-convbkmk-12:svn49252- 100% | 693.0 KiB/s | 20.8 KiB | 00m00s [581/748] texlive-ptex-base-12:svn64072 100% | 5.1 MiB/s | 20.8 KiB | 00m00s [582/748] texlive-japanese-otf-12:svn78 100% | 142.9 MiB/s | 731.6 KiB | 00m00s [583/748] texlive-uptex-base-12:svn7784 100% | 72.8 MiB/s | 298.2 KiB | 00m00s [584/748] texlive-uptex-fonts-12:svn741 100% | 54.6 MiB/s | 279.7 KiB | 00m00s [585/748] perl-Opcode-0:1.71-527.fc45.x 100% | 8.7 MiB/s | 35.7 KiB | 00m00s [586/748] texlive-minifp-12:svn76924-7. 100% | 87.2 MiB/s | 446.5 KiB | 00m00s [587/748] perl-Business-ISBN-0:3.014-2. 100% | 8.2 MiB/s | 33.5 KiB | 00m00s [588/748] perl-Business-ISMN-0:1.205-4. 100% | 12.6 MiB/s | 25.8 KiB | 00m00s [589/748] perl-Business-ISSN-0:1.008-4. 100% | 6.0 MiB/s | 18.4 KiB | 00m00s [590/748] perl-Class-Accessor-0:0.51-25 100% | 9.3 MiB/s | 28.5 KiB | 00m00s [591/748] perl-Data-Compare-0:1.29-9.fc 100% | 11.2 MiB/s | 34.3 KiB | 00m00s [592/748] perl-Data-Uniqid-0:0.12-39.fc 100% | 3.9 MiB/s | 12.1 KiB | 00m00s [593/748] perl-DateTime-2:1.67-1.fc46.x 100% | 43.5 MiB/s | 133.8 KiB | 00m00s [594/748] perl-DateTime-Calendar-Julian 100% | 7.5 MiB/s | 23.1 KiB | 00m00s [595/748] perl-DateTime-Format-Builder- 100% | 30.4 MiB/s | 93.4 KiB | 00m00s [596/748] perl-File-Slurper-0:0.014-10. 100% | 6.8 MiB/s | 20.9 KiB | 00m00s [597/748] perl-DateTime-TimeZone-0:2.70 100% | 64.1 MiB/s | 393.9 KiB | 00m00s [598/748] perl-IO-String-0:1.08-55.fc45 100% | 4.2 MiB/s | 17.0 KiB | 00m00s [599/748] perl-IPC-Cmd-2:1.04-527.fc45. 100% | 12.8 MiB/s | 39.2 KiB | 00m00s [600/748] perl-IPC-Run3-0:0.049-6.fc45. 100% | 12.5 MiB/s | 38.5 KiB | 00m00s [601/748] perl-LWP-Protocol-https-0:6.1 100% | 7.0 MiB/s | 21.6 KiB | 00m00s [602/748] perl-Lingua-Translit-0:0.29-1 100% | 10.8 MiB/s | 33.2 KiB | 00m00s [603/748] perl-List-AllUtils-0:0.19-17. 100% | 23.8 MiB/s | 48.7 KiB | 00m00s [604/748] perl-Parse-RecDescent-0:1.967 100% | 50.8 MiB/s | 208.0 KiB | 00m00s [605/748] perl-Regexp-Common-0:20240808 100% | 36.9 MiB/s | 188.8 KiB | 00m00s [606/748] perl-Log-Log4perl-0:1.58-1.fc 100% | 30.6 MiB/s | 345.0 KiB | 00m00s [607/748] perl-Sort-Key-0:1.33-38.fc45. 100% | 15.0 MiB/s | 46.0 KiB | 00m00s [608/748] perl-Text-Balanced-0:2.07-527 100% | 15.8 MiB/s | 48.4 KiB | 00m00s [609/748] perl-Text-CSV-0:2.06-3.fc45.n 100% | 39.1 MiB/s | 120.0 KiB | 00m00s [610/748] perl-Text-Roman-0:3.5-33.fc45 100% | 10.9 MiB/s | 22.4 KiB | 00m00s [611/748] texlive-ipaex-12:svn61719-6.f 100% | 180.7 MiB/s | 15.7 MiB | 00m00s [612/748] perl-Unicode-Collate-0:1.31-5 100% | 37.1 MiB/s | 645.0 KiB | 00m00s [613/748] perl-Text-BibTeX-0:0.91-8.fc4 100% | 10.3 MiB/s | 254.2 KiB | 00m00s [614/748] perl-Unicode-LineBreak-0:2019 100% | 38.4 MiB/s | 118.0 KiB | 00m00s [615/748] perl-XML-LibXML-1:2.0213-4.fc 100% | 117.7 MiB/s | 361.5 KiB | 00m00s [616/748] perl-XML-LibXML-Simple-0:1.01 100% | 10.6 MiB/s | 32.6 KiB | 00m00s [617/748] perl-XML-LibXSLT-0:2.003.000- 100% | 20.7 MiB/s | 63.5 KiB | 00m00s [618/748] perl-XML-Writer-0:0.900-19.fc 100% | 10.8 MiB/s | 33.2 KiB | 00m00s [619/748] perl-autovivification-0:0.18- 100% | 10.8 MiB/s | 33.1 KiB | 00m00s [620/748] xdg-utils-0:1.2.1-6.fc45.noar 100% | 38.7 MiB/s | 79.3 KiB | 00m00s [621/748] texlive-logreq-12:svn53003-9. 100% | 11.1 MiB/s | 22.7 KiB | 00m00s [622/748] texlive-luacode-12:svn78415-4 100% | 81.3 MiB/s | 416.4 KiB | 00m00s [623/748] texlive-luatexko-12:svn78005- 100% | 66.6 MiB/s | 340.9 KiB | 00m00s [624/748] texlive-fonts-tlwg-12:svn7843 100% | 132.9 MiB/s | 5.1 MiB | 00m00s [625/748] texlive-kotex-utf-12:svn63690 100% | 158.9 MiB/s | 9.1 MiB | 00m00s [626/748] texlive-l3backend-dev-12:svn7 100% | 76.6 MiB/s | 862.9 KiB | 00m00s [627/748] texlive-mfirstuc-12:svn77682- 100% | 12.4 MiB/s | 811.3 KiB | 00m00s [628/748] texlive-latex-firstaid-dev-12 100% | 58.5 MiB/s | 299.4 KiB | 00m00s [629/748] texlive-plautopatch-12:svn776 100% | 49.0 MiB/s | 150.6 KiB | 00m00s [630/748] texlive-ptex-fonts-12:svn6433 100% | 21.9 MiB/s | 67.4 KiB | 00m00s [631/748] texlive-ptex-12:svn77830-113. 100% | 80.6 MiB/s | 412.5 KiB | 00m00s [632/748] perl-Business-ISBN-Data-0:202 100% | 12.5 MiB/s | 51.1 KiB | 00m00s [633/748] perl-Tie-Cycle-0:1.233-2.fc45 100% | 3.2 MiB/s | 19.6 KiB | 00m00s [634/748] perl-File-Find-Rule-0:0.35-4. 100% | 15.8 MiB/s | 32.3 KiB | 00m00s [635/748] perl-Math-BigInt-1:2.0050.03- 100% | 38.1 MiB/s | 233.9 KiB | 00m00s [636/748] perl-Sys-Hostname-0:1.25-527. 100% | 8.2 MiB/s | 16.7 KiB | 00m00s [637/748] perl-DateTime-Locale-0:1.46-1 100% | 133.9 MiB/s | 4.4 MiB | 00m00s [638/748] perl-Dist-CheckConflicts-0:0. 100% | 11.2 MiB/s | 23.0 KiB | 00m00s [639/748] perl-Params-ValidationCompile 100% | 12.1 MiB/s | 37.3 KiB | 00m00s [640/748] perl-Specio-0:0.53-3.fc45.noa 100% | 27.0 MiB/s | 165.8 KiB | 00m00s [641/748] perl-namespace-autoclean-0:0. 100% | 4.2 MiB/s | 26.1 KiB | 00m00s [642/748] perl-DateTime-Format-Strptime 100% | 20.1 MiB/s | 41.1 KiB | 00m00s [643/748] perl-Params-Validate-0:1.31-1 100% | 33.2 MiB/s | 68.1 KiB | 00m00s [644/748] perl-Class-Singleton-0:1.6-16 100% | 12.4 MiB/s | 25.3 KiB | 00m00s [645/748] perl-DateTime-TimeZone-Tzfile 100% | 9.5 MiB/s | 19.4 KiB | 00m00s [646/748] perl-Module-Runtime-0:0.018-4 100% | 15.2 MiB/s | 31.1 KiB | 00m00s [647/748] perl-ExtUtils-MM-Utils-2:7.78 100% | 5.6 MiB/s | 11.4 KiB | 00m00s [648/748] perl-Module-Load-Conditional- 100% | 3.5 MiB/s | 21.7 KiB | 00m00s [649/748] perl-Params-Check-1:0.38-527. 100% | 3.0 MiB/s | 21.5 KiB | 00m00s [650/748] perl-Mozilla-CA-0:20260813-1. 100% | 3.2 MiB/s | 16.2 KiB | 00m00s [651/748] perl-List-SomeUtils-0:0.59-10 100% | 8.8 MiB/s | 45.2 KiB | 00m00s [652/748] perl-List-UtilsBy-0:0.12-14.f 100% | 6.9 MiB/s | 28.3 KiB | 00m00s [653/748] perl-IPC-SysV-0:2.09-527.fc45 100% | 9.9 MiB/s | 40.6 KiB | 00m00s [654/748] perl-LDAP-1:0.68-18.fc45.noar 100% | 95.6 MiB/s | 391.7 KiB | 00m00s [655/748] perl-Log-Dispatch-0:2.71-9.fc 100% | 20.9 MiB/s | 85.6 KiB | 00m00s [656/748] perl-Log-Dispatch-FileRotate- 100% | 15.9 MiB/s | 32.6 KiB | 00m00s [657/748] perl-Getopt-Tabular-0:0.3-41. 100% | 22.5 MiB/s | 46.1 KiB | 00m00s [658/748] perl-MIME-Charset-0:1.013.1-1 100% | 23.4 MiB/s | 48.0 KiB | 00m00s [659/748] sombok-0:2.4.0-26.fc45.x86_64 100% | 16.0 MiB/s | 49.3 KiB | 00m00s [660/748] perl-XML-NamespaceSupport-0:1 100% | 8.3 MiB/s | 25.6 KiB | 00m00s [661/748] perl-XML-SAX-0:1.02-21.fc45.n 100% | 30.7 MiB/s | 62.9 KiB | 00m00s [662/748] perl-XML-SAX-Base-0:1.09-28.f 100% | 14.3 MiB/s | 29.2 KiB | 00m00s [663/748] perl-autodie-0:2.37-527.fc45. 100% | 23.7 MiB/s | 97.2 KiB | 00m00s [664/748] texlive-fnpara-12:svn25607-7. 100% | 60.8 MiB/s | 186.6 KiB | 00m00s [665/748] texlive-sectsty-12:svn77682-7 100% | 74.9 MiB/s | 230.2 KiB | 00m00s [666/748] texlive-latex-base-dev-12:svn 100% | 168.7 MiB/s | 38.1 MiB | 00m00s [667/748] texlive-arydshln-12:svn77682- 100% | 20.8 MiB/s | 830.5 KiB | 00m00s [668/748] perl-Number-Compare-0:0.03-43 100% | 834.3 KiB/s | 11.7 KiB | 00m00s [669/748] perl-Text-Glob-0:0.11-28.fc45 100% | 1.0 MiB/s | 13.2 KiB | 00m00s [670/748] perl-Eval-Closure-0:0.14-28.f 100% | 4.6 MiB/s | 23.8 KiB | 00m00s [671/748] texlive-l3kernel-dev-12:svn78 100% | 45.4 MiB/s | 11.8 MiB | 00m00s [672/748] perl-Exception-Class-0:1.46-1 100% | 3.0 MiB/s | 45.6 KiB | 00m00s [673/748] perl-Clone-PP-0:1.09-1.fc46.n 100% | 1.3 MiB/s | 14.9 KiB | 00m00s [674/748] perl-Devel-StackTrace-1:2.05- 100% | 14.9 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% | 6.2 MiB/s | 19.0 KiB | 00m00s [677/748] perl-Role-Tiny-0:2.002005-2.f 100% | 15.8 MiB/s | 32.4 KiB | 00m00s [678/748] perl-namespace-clean-0:0.27-3 100% | 16.6 MiB/s | 34.0 KiB | 00m00s [679/748] perl-version-9:0.99.34-527.fc 100% | 15.3 MiB/s | 62.7 KiB | 00m00s [680/748] perl-Date-ISO8601-0:0.005-25. 100% | 6.2 MiB/s | 19.1 KiB | 00m00s [681/748] perl-DateTime-TimeZone-System 100% | 7.3 MiB/s | 22.5 KiB | 00m00s [682/748] perl-Params-Classify-0:0.015- 100% | 9.9 MiB/s | 30.6 KiB | 00m00s [683/748] perl-Module-CoreList-1:5.2026 100% | 31.3 MiB/s | 96.0 KiB | 00m00s [684/748] perl-Module-Metadata-0:1.0000 100% | 11.9 MiB/s | 36.4 KiB | 00m00s [685/748] perl-Authen-SASL-0:2.2100-1.f 100% | 35.5 MiB/s | 72.8 KiB | 00m00s [686/748] perl-Convert-ASN1-0:0.34-8.fc 100% | 19.3 MiB/s | 59.2 KiB | 00m00s [687/748] perl-JSON-0:4.11-2.fc45.noarc 100% | 22.9 MiB/s | 93.9 KiB | 00m00s [688/748] perl-Text-Soundex-0:3.05-38.f 100% | 14.4 MiB/s | 29.4 KiB | 00m00s [689/748] perl-Devel-GlobalDestruction- 100% | 8.2 MiB/s | 16.8 KiB | 00m00s [690/748] perl-MIME-Lite-0:3.038-2.fc45 100% | 19.8 MiB/s | 81.3 KiB | 00m00s [691/748] perl-Mail-Sender-1:0.903-29.f 100% | 12.3 MiB/s | 50.5 KiB | 00m00s [692/748] perl-Mail-Sendmail-0:0.83-2.f 100% | 7.1 MiB/s | 36.4 KiB | 00m00s [693/748] perl-MailTools-0:2.22-5.fc45. 100% | 53.3 MiB/s | 109.2 KiB | 00m00s [694/748] perl-Sys-Syslog-0:0.36-528.fc 100% | 22.5 MiB/s | 46.1 KiB | 00m00s [695/748] perl-Tie-RefHash-0:1.41-527.f 100% | 7.6 MiB/s | 23.3 KiB | 00m00s [696/748] perl-Devel-LexAlias-0:0.05-44 100% | 3.9 MiB/s | 16.0 KiB | 00m00s [697/748] perl-Date-Manip-0:7.00-1.fc46 100% | 126.1 MiB/s | 1.1 MiB | 00m00s [698/748] perl-Class-Data-Inheritable-0 100% | 4.2 MiB/s | 12.8 KiB | 00m00s [699/748] perltidy-0:20260826-1.fc46.no 100% | 111.2 MiB/s | 911.3 KiB | 00m00s [700/748] perl-Class-Method-Modifiers-0 100% | 9.7 MiB/s | 49.7 KiB | 00m00s [701/748] perl-GSSAPI-0:0.28-53.fc45.x8 100% | 13.3 MiB/s | 54.6 KiB | 00m00s [702/748] perl-Sub-Exporter-Progressive 100% | 6.7 MiB/s | 20.6 KiB | 00m00s [703/748] perl-Email-Date-Format-0:1.00 100% | 6.1 MiB/s | 18.7 KiB | 00m00s [704/748] perl-JSON-PP-1:4.18-3.fc45.no 100% | 15.9 MiB/s | 65.3 KiB | 00m00s [705/748] perl-Sys-Hostname-Long-0:1.5- 100% | 4.1 MiB/s | 16.8 KiB | 00m00s [706/748] perl-Net-SMTP-SSL-0:1.04-29.f 100% | 2.8 MiB/s | 11.5 KiB | 00m00s [707/748] perl-Devel-Caller-0:2.07-13.f 100% | 4.5 MiB/s | 18.4 KiB | 00m00s [708/748] perl-Sub-Exporter-0:0.992-1.f 100% | 25.2 MiB/s | 77.6 KiB | 00m00s [709/748] perl-PadWalker-0:2.5-21.fc45. 100% | 8.7 MiB/s | 26.8 KiB | 00m00s [710/748] perl-Data-OptList-0:0.115-1.f 100% | 8.8 MiB/s | 27.1 KiB | 00m00s [711/748] perl-Package-Generator-0:1.10 100% | 7.3 MiB/s | 22.4 KiB | 00m00s [712/748] perl-Params-SomeUtil-0:1.12-1 100% | 14.0 MiB/s | 43.0 KiB | 00m00s [713/748] perl-Sub-Install-0:0.929-10.f 100% | 4.4 MiB/s | 22.6 KiB | 00m00s [714/748] libXrender-0:0.9.12-5.fc45.x8 100% | 13.6 MiB/s | 27.8 KiB | 00m00s [715/748] cairo-0:1.18.6-1.fc46.x86_64 100% | 123.3 MiB/s | 757.6 KiB | 00m00s [716/748] lzo-0:2.10-17.fc45.x86_64 100% | 17.2 MiB/s | 70.6 KiB | 00m00s [717/748] pixman-0:0.46.2-4.fc46.x86_64 100% | 69.2 MiB/s | 283.5 KiB | 00m00s [718/748] perl-Safe-0:2.47-527.fc45.noa 100% | 12.0 MiB/s | 24.6 KiB | 00m00s [719/748] desktop-file-utils-0:0.28-8.f 100% | 32.9 MiB/s | 67.3 KiB | 00m00s [720/748] emacs-filesystem-1:31.1-1.fc4 100% | 4.0 MiB/s | 8.2 KiB | 00m00s [721/748] libthai-0:0.1.30-3.fc46.x86_6 100% | 105.2 MiB/s | 215.4 KiB | 00m00s [722/748] xpdf-libs-1:4.06-3.fc45.x86_6 100% | 103.0 MiB/s | 632.6 KiB | 00m00s [723/748] libdatrie-0:0.2.14-3.fc45.x86 100% | 16.0 MiB/s | 32.9 KiB | 00m00s [724/748] perl-English-0:1.12-527.fc45. 100% | 6.5 MiB/s | 13.3 KiB | 00m00s [725/748] perl-B-Hooks-EndOfScope-0:0.2 100% | 18.6 MiB/s | 38.1 KiB | 00m00s [726/748] perl-Variable-Magic-0:0.65-1. 100% | 53.9 MiB/s | 55.2 KiB | 00m00s [727/748] perl-Hash-Util-FieldHash-0:1. 100% | 12.5 MiB/s | 38.5 KiB | 00m00s [728/748] perl-Package-Stash-0:0.40-12. 100% | 15.9 MiB/s | 32.5 KiB | 00m00s [729/748] perl-Package-Stash-XS-0:0.30- 100% | 17.0 MiB/s | 34.9 KiB | 00m00s [730/748] libxslt-0:1.1.43-10.fc46.x86_ 100% | 88.4 MiB/s | 181.0 KiB | 00m00s [731/748] perl-deprecate-0:0.04-527.fc4 100% | 7.0 MiB/s | 14.3 KiB | 00m00s [732/748] hostname-0:3.25-5.fc46.x86_64 100% | 13.3 MiB/s | 27.2 KiB | 00m00s [733/748] perl-Ref-Util-0:0.204-25.fc46 100% | 11.3 MiB/s | 23.2 KiB | 00m00s [734/748] perl-XString-0:0.005-20.fc46. 100% | 10.9 MiB/s | 22.4 KiB | 00m00s [735/748] perl-DynaLoader-Functions-0:0 100% | 17.8 MiB/s | 18.2 KiB | 00m00s [736/748] perl-Locale-Maketext-Simple-1 100% | 16.9 MiB/s | 17.3 KiB | 00m00s [737/748] perl-Devel-CallChecker-0:0.01 100% | 5.7 MiB/s | 23.3 KiB | 00m00s [738/748] perl-Locale-Maketext-0:1.33-5 100% | 45.8 MiB/s | 93.7 KiB | 00m00s [739/748] perl-I18N-LangTags-0:0.45-527 100% | 25.6 MiB/s | 52.4 KiB | 00m00s [740/748] perl-Math-Complex-0:1.63-527. 100% | 11.2 MiB/s | 46.0 KiB | 00m00s [741/748] perl-File-Compare-0:1.100.800 100% | 4.2 MiB/s | 12.9 KiB | 00m00s [742/748] perl-Tie-0:4.6-527.fc45.noarc 100% | 13.7 MiB/s | 28.0 KiB | 00m00s [743/748] perl-Crypt-URandom-0:0.55-3.f 100% | 15.2 MiB/s | 31.1 KiB | 00m00s [744/748] perl-sigtrap-0:1.10-527.fc45. 100% | 7.5 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] ghostscript-tools-dvipdf-0:10 100% | 1.9 MiB/s | 9.9 KiB | 00m00s [747/748] perl-Unicode-UCD-0:0.83-527.f 100% | 38.6 MiB/s | 79.1 KiB | 00m00s [748/748] perl-Ref-Util-XS-0:0.117-30.f 100% | 11.2 MiB/s | 22.9 KiB | 00m00s -------------------------------------------------------------------------------- [748/748] Total 100% | 214.8 MiB/s | 625.0 MiB | 00m03s Running transaction [ 1/750] Verify package files 100% | 312.0 B/s | 748.0 B | 00m02s >>> Running %pretrans scriptlet: texlive-base-12:20260301-113.fc45.x86_64 >>> Finished %pretrans scriptlet: texlive-base-12:20260301-113.fc45.x86_64 >>> [RPM] /var/lib/mock/fedora-rawhide-x86_64-1790845717.798376/root/var/cache/dnf/copr_base-64ab9e188b99823d/packages/bison-3.8.2-16.fc46.x86_64.rpm: Header OpenPGP V4 RSA/SHA256 signature, key ID 5291f7fa5c4b3009: NOKEY [ 2/750] Prepare transaction 100% | 2.6 KiB/s | 748.0 B | 00m00s [ 3/750] Installing texlive-base-12:20 100% | 506.3 MiB/s | 21.3 MiB | 00m00s [ 4/750] Installing texlive-lib-12:202 100% | 288.9 MiB/s | 1.2 MiB | 00m00s [ 5/750] Installing libpng-2:1.6.58-2. 100% | 288.3 MiB/s | 295.3 KiB | 00m00s [ 6/750] Installing fonts-filesystem-1 100% | 0.0 B/s | 788.0 B | 00m00s [ 7/750] Installing urw-base35-fonts-c 100% | 0.0 B/s | 38.4 KiB | 00m00s [ 8/750] Installing pixman-0:0.46.2-4. 100% | 404.2 MiB/s | 827.8 KiB | 00m00s [ 9/750] Installing libpaper-1:2.1.1-1 100% | 49.0 MiB/s | 50.1 KiB | 00m00s [ 10/750] Installing sgml-common-0:0.6. 100% | 9.0 MiB/s | 174.9 KiB | 00m00s [ 11/750] Installing libxslt-0:1.1.43-1 100% | 24.9 MiB/s | 458.8 KiB | 00m00s [ 12/750] Installing libjpeg-turbo-0:3. 100% | 304.4 MiB/s | 935.1 KiB | 00m00s [ 13/750] Installing adobe-mappings-cma 100% | 389.5 MiB/s | 15.2 MiB | 00m00s [ 14/750] Installing zziplib-0:0.13.78- 100% | 113.0 MiB/s | 231.4 KiB | 00m00s [ 15/750] Installing glib2-0:2.90.0-1.f 100% | 289.4 MiB/s | 15.3 MiB | 00m00s [ 16/750] Installing graphite2-0:1.3.14 100% | 11.0 MiB/s | 202.4 KiB | 00m00s [ 17/750] Installing freetype-0:2.14.3- 100% | 309.8 MiB/s | 951.8 KiB | 00m00s [ 18/750] Installing harfbuzz-0:14.5.0- 100% | 231.4 MiB/s | 3.0 MiB | 00m00s [ 19/750] Installing xml-common-0:0.6.3 100% | 79.2 MiB/s | 81.1 KiB | 00m00s [ 20/750] Installing m4-0:1.4.21-3.fc45 100% | 31.0 MiB/s | 887.6 KiB | 00m00s [ 21/750] Installing groff-base-0:1.24. 100% | 112.5 MiB/s | 4.4 MiB | 00m00s [ 22/750] Installing libICE-0:1.1.2-5.f 100% | 195.1 MiB/s | 199.8 KiB | 00m00s [ 23/750] Installing libSM-0:1.2.5-5.fc 100% | 16.6 MiB/s | 102.3 KiB | 00m00s [ 24/750] Installing groff-0:1.24.1-2.f 100% | 110.7 MiB/s | 4.3 MiB | 00m00s [ 25/750] Installing docbook-dtds-0:1.0 100% | 33.0 MiB/s | 6.8 MiB | 00m00s [ 26/750] Installing adobe-mappings-cma 100% | 190.5 MiB/s | 585.2 KiB | 00m00s [ 27/750] Installing opensp-0:1.5.2-51. 100% | 107.3 MiB/s | 2.9 MiB | 00m00s [ 28/750] Installing openjade-0:1.3.2-8 100% | 72.3 MiB/s | 3.8 MiB | 00m00s [ 29/750] Installing urw-base35-bookman 100% | 455.0 MiB/s | 1.4 MiB | 00m00s [ 30/750] Installing urw-base35-c059-fo 100% | 465.1 MiB/s | 1.4 MiB | 00m00s [ 31/750] Installing urw-base35-d050000 100% | 83.4 MiB/s | 85.4 KiB | 00m00s [ 32/750] Installing urw-base35-gothic- 100% | 387.6 MiB/s | 1.2 MiB | 00m00s [ 33/750] Installing urw-base35-nimbus- 100% | 525.9 MiB/s | 1.1 MiB | 00m00s [ 34/750] Installing urw-base35-nimbus- 100% | 455.3 MiB/s | 1.4 MiB | 00m00s [ 35/750] Installing urw-base35-nimbus- 100% | 478.8 MiB/s | 2.4 MiB | 00m00s [ 36/750] Installing urw-base35-p052-fo 100% | 495.8 MiB/s | 1.5 MiB | 00m00s [ 37/750] Installing urw-base35-standar 100% | 0.0 B/s | 66.0 KiB | 00m00s [ 38/750] Installing urw-base35-z003-fo 100% | 382.6 MiB/s | 391.8 KiB | 00m00s [ 39/750] Installing urw-base35-fonts-0 100% | 0.0 B/s | 5.6 KiB | 00m00s [ 40/750] Installing abattis-cantarell- 100% | 189.9 MiB/s | 194.4 KiB | 00m00s [ 41/750] Installing google-droid-sans- 100% | 368.2 MiB/s | 6.3 MiB | 00m00s [ 42/750] Installing hostname-0:3.25-5. 100% | 1.9 MiB/s | 44.0 KiB | 00m00s [ 43/750] Installing libdatrie-0:0.2.14 100% | 57.5 MiB/s | 58.8 KiB | 00m00s [ 44/750] Installing libthai-0:0.1.30-3 100% | 262.6 MiB/s | 806.6 KiB | 00m00s [ 45/750] Installing sombok-0:2.4.0-26. 100% | 130.5 MiB/s | 133.6 KiB | 00m00s [ 46/750] Installing emacs-filesystem-1 100% | 0.0 B/s | 1.1 KiB | 00m00s [ 47/750] Installing desktop-file-utils 100% | 12.2 MiB/s | 225.3 KiB | 00m00s [ 48/750] Installing xdg-utils-0:1.2.1- 100% | 20.1 MiB/s | 349.5 KiB | 00m00s [ 49/750] Installing xpdf-libs-1:4.06-3 100% | 360.8 MiB/s | 1.8 MiB | 00m00s [ 50/750] Installing lzo-0:2.10-17.fc45 100% | 176.2 MiB/s | 180.4 KiB | 00m00s [ 51/750] Installing liblerc-0:4.2.0-1. 100% | 279.4 MiB/s | 572.2 KiB | 00m00s [ 52/750] Installing dbus-libs-1:1.16.2 100% | 225.2 MiB/s | 461.3 KiB | 00m00s [ 53/750] Installing avahi-libs-0:0.9~r 100% | 167.1 MiB/s | 171.1 KiB | 00m00s [ 54/750] Installing cups-filesystem-1: 100% | 0.0 B/s | 1.8 KiB | 00m00s [ 55/750] Installing cups-libs-1:2.4.19 100% | 259.1 MiB/s | 796.0 KiB | 00m00s [ 56/750] Installing openjpeg-0:2.5.4-4 100% | 215.7 MiB/s | 441.8 KiB | 00m00s [ 57/750] Installing libwebp-0:1.6.0-4. 100% | 316.5 MiB/s | 972.2 KiB | 00m00s [ 58/750] Installing jbigkit-libs-0:2.1 100% | 116.4 MiB/s | 119.2 KiB | 00m00s [ 59/750] Installing libtiff-0:4.7.2-2. 100% | 323.0 MiB/s | 661.4 KiB | 00m00s [ 60/750] Installing libijs-0:0.35-27.f 100% | 0.0 B/s | 62.2 KiB | 00m00s [ 61/750] Installing lcms2-0:2.16-8.fc4 100% | 268.9 MiB/s | 550.6 KiB | 00m00s [ 62/750] Installing pcre2-utf32-0:10.4 100% | 325.8 MiB/s | 667.3 KiB | 00m00s [ 63/750] Installing pcre2-utf16-0:10.4 100% | 339.5 MiB/s | 695.4 KiB | 00m00s [ 64/750] Installing pcre2-devel-0:10.4 100% | 92.1 MiB/s | 2.1 MiB | 00m00s [ 65/750] Installing libsepol-devel-0:3 100% | 62.6 MiB/s | 128.2 KiB | 00m00s [ 66/750] Installing libselinux-devel-0 100% | 51.0 MiB/s | 156.6 KiB | 00m00s [ 67/750] Installing jbig2dec-libs-0:0. 100% | 166.4 MiB/s | 170.4 KiB | 00m00s [ 68/750] Installing adobe-mappings-pdf 100% | 399.7 MiB/s | 4.4 MiB | 00m00s [ 69/750] Installing libverto-devel-0:0 100% | 0.0 B/s | 26.4 KiB | 00m00s [ 70/750] Installing libcom_err-devel-0 100% | 1.0 MiB/s | 18.3 KiB | 00m00s [ 71/750] Installing keyutils-libs-deve 100% | 53.9 MiB/s | 55.2 KiB | 00m00s [ 72/750] Installing libkadm5-0:1.22.2- 100% | 214.6 MiB/s | 219.7 KiB | 00m00s [ 73/750] Installing krb5-devel-0:1.22. 100% | 37.0 MiB/s | 719.2 KiB | 00m00s [ 74/750] Installing ncurses-0:6.6-3.fc 100% | 34.4 MiB/s | 633.2 KiB | 00m00s [ 75/750] Installing perl-Digest-0:1.20 100% | 0.0 B/s | 37.0 KiB | 00m00s [ 76/750] Installing perl-FileHandle-0: 100% | 0.0 B/s | 9.8 KiB | 00m00s [ 77/750] Installing perl-B-0:1.92-527. 100% | 252.4 MiB/s | 516.9 KiB | 00m00s [ 78/750] Installing perl-Digest-MD5-0: 100% | 60.0 MiB/s | 61.4 KiB | 00m00s [ 79/750] Installing perl-libnet-0:3.15 100% | 143.4 MiB/s | 293.8 KiB | 00m00s [ 80/750] Installing perl-Data-Dumper-0 100% | 114.6 MiB/s | 117.4 KiB | 00m00s [ 81/750] Installing perl-Unicode-Norma 100% | 476.9 MiB/s | 488.4 KiB | 00m00s [ 82/750] Installing perl-MIME-Base32-0 100% | 31.4 MiB/s | 32.2 KiB | 00m00s [ 83/750] Installing perl-URI-0:5.37-1. 100% | 94.2 MiB/s | 289.2 KiB | 00m00s [ 84/750] Installing perl-IO-Socket-IP- 100% | 99.9 MiB/s | 102.3 KiB | 00m00s [ 85/750] Installing perl-AutoLoader-0: 100% | 0.0 B/s | 21.0 KiB | 00m00s [ 86/750] Installing perl-IO-Socket-SSL 100% | 238.0 MiB/s | 731.0 KiB | 00m00s [ 87/750] Installing perl-Net-SSLeay-0: 100% | 270.4 MiB/s | 1.4 MiB | 00m00s [ 88/750] Installing perl-locale-0:1.13 100% | 0.0 B/s | 6.5 KiB | 00m00s [ 89/750] Installing perl-if-0:0.61.000 100% | 0.0 B/s | 6.2 KiB | 00m00s [ 90/750] Installing perl-Pod-Escapes-1 100% | 0.0 B/s | 25.9 KiB | 00m00s [ 91/750] Installing perl-File-Path-0:2 100% | 0.0 B/s | 64.4 KiB | 00m00s [ 92/750] Installing perl-Text-Tabs+Wra 100% | 0.0 B/s | 23.9 KiB | 00m00s [ 93/750] Installing perl-Time-Local-2: 100% | 0.0 B/s | 70.6 KiB | 00m00s [ 94/750] Installing perl-Time-HiRes-4: 100% | 114.9 MiB/s | 117.7 KiB | 00m00s [ 95/750] Installing perl-Pod-Simple-1: 100% | 280.7 MiB/s | 574.8 KiB | 00m00s [ 96/750] Installing perl-HTTP-Tiny-0:0 100% | 160.6 MiB/s | 164.5 KiB | 00m00s [ 97/750] Installing perl-IPC-Open3-0:1 100% | 0.0 B/s | 28.5 KiB | 00m00s [ 98/750] Installing perl-File-Temp-1:0 100% | 161.6 MiB/s | 165.5 KiB | 00m00s [ 99/750] Installing perl-Class-Struct- 100% | 0.0 B/s | 25.9 KiB | 00m00s [100/750] Installing perl-POSIX-0:2.26- 100% | 225.1 MiB/s | 230.5 KiB | 00m00s [101/750] Installing perl-Term-Cap-0:1. 100% | 0.0 B/s | 30.6 KiB | 00m00s [102/750] Installing perl-Term-ANSIColo 100% | 96.8 MiB/s | 99.1 KiB | 00m00s [103/750] Installing perl-podlators-1:6 100% | 18.0 MiB/s | 331.1 KiB | 00m00s [104/750] Installing perl-Pod-Perldoc-0 100% | 9.2 MiB/s | 169.4 KiB | 00m00s [105/750] Installing perl-File-stat-0:1 100% | 0.0 B/s | 14.2 KiB | 00m00s [106/750] Installing perl-SelectSaver-0 100% | 0.0 B/s | 2.5 KiB | 00m00s [107/750] Installing perl-Symbol-0:1.09 100% | 0.0 B/s | 7.3 KiB | 00m00s [108/750] Installing perl-Socket-4:2.04 100% | 120.9 MiB/s | 123.8 KiB | 00m00s [109/750] Installing perl-Pod-Usage-4:2 100% | 5.0 MiB/s | 87.8 KiB | 00m00s [110/750] Installing perl-overloading-0 100% | 0.0 B/s | 5.5 KiB | 00m00s [111/750] Installing perl-IO-0:1.56-527 100% | 148.0 MiB/s | 151.5 KiB | 00m00s [112/750] Installing perl-mro-0:1.30-52 100% | 0.0 B/s | 42.5 KiB | 00m00s [113/750] Installing perl-base-0:2.27-5 100% | 0.0 B/s | 13.0 KiB | 00m00s [114/750] Installing perl-Fcntl-0:1.20- 100% | 0.0 B/s | 45.8 KiB | 00m00s [115/750] Installing perl-Text-ParseWor 100% | 0.0 B/s | 14.6 KiB | 00m00s [116/750] Installing perl-Getopt-Std-0: 100% | 0.0 B/s | 13.0 KiB | 00m00s [117/750] Installing perl-Getopt-Long-1 100% | 143.8 MiB/s | 147.2 KiB | 00m00s [118/750] Installing perl-overload-0:1. 100% | 0.0 B/s | 72.0 KiB | 00m00s [119/750] Installing perl-Storable-1:3. 100% | 230.9 MiB/s | 236.5 KiB | 00m00s [120/750] Installing perl-vars-0:1.05-5 100% | 0.0 B/s | 4.3 KiB | 00m00s [121/750] Installing perl-File-Basename 100% | 0.0 B/s | 14.6 KiB | 00m00s [122/750] Installing perl-Errno-0:1.39- 100% | 0.0 B/s | 8.8 KiB | 00m00s [123/750] Installing perl-MIME-Base64-0 100% | 43.1 MiB/s | 44.1 KiB | 00m00s [124/750] Installing perl-parent-1:0.24 100% | 0.0 B/s | 11.0 KiB | 00m00s [125/750] Installing perl-constant-0:1. 100% | 0.0 B/s | 27.4 KiB | 00m00s [126/750] Installing perl-Scalar-List-U 100% | 145.1 MiB/s | 148.6 KiB | 00m00s [127/750] Installing perl-Exporter-0:5. 100% | 54.2 MiB/s | 55.5 KiB | 00m00s [128/750] Installing perl-Encode-4:3.24 100% | 173.9 MiB/s | 4.7 MiB | 00m00s [129/750] Installing perl-DynaLoader-0: 100% | 0.0 B/s | 32.5 KiB | 00m00s [130/750] Installing perl-PathTools-0:3 100% | 180.2 MiB/s | 184.5 KiB | 00m00s [131/750] Installing perl-Carp-0:1.54-5 100% | 23.3 MiB/s | 47.7 KiB | 00m00s [132/750] Installing perl-libs-4:5.44.0 100% | 302.2 MiB/s | 12.1 MiB | 00m00s [133/750] Installing perl-interpreter-4 100% | 7.0 MiB/s | 121.4 KiB | 00m00s [134/750] Installing perl-File-Find-0:1 100% | 0.0 B/s | 42.5 KiB | 00m00s [135/750] Installing perl-Try-Tiny-0:0. 100% | 69.4 MiB/s | 71.1 KiB | 00m00s [136/750] Installing perl-subs-0:1.04-5 100% | 0.0 B/s | 2.5 KiB | 00m00s [137/750] Installing perl-File-Copy-0:2 100% | 0.0 B/s | 20.2 KiB | 00m00s [138/750] Installing perl-Module-Runtim 100% | 0.0 B/s | 64.5 KiB | 00m00s [139/750] Installing perl-Module-Implem 100% | 0.0 B/s | 26.1 KiB | 00m00s [140/750] Installing perl-version-9:0.9 100% | 132.3 MiB/s | 135.5 KiB | 00m00s [141/750] Installing perl-Dist-CheckCon 100% | 0.0 B/s | 33.1 KiB | 00m00s [142/750] Installing perl-Sys-Hostname- 100% | 0.0 B/s | 17.1 KiB | 00m00s [143/750] Installing perl-Clone-0:0.50- 100% | 57.8 MiB/s | 59.2 KiB | 00m00s [144/750] Installing perl-Compress-Raw- 100% | 171.7 MiB/s | 175.8 KiB | 00m00s [145/750] Installing perl-Data-Dump-0:1 100% | 51.0 MiB/s | 52.2 KiB | 00m00s [146/750] Installing perl-Opcode-0:1.71 100% | 48.7 MiB/s | 49.9 KiB | 00m00s [147/750] Installing perl-Safe-0:2.47-5 100% | 30.3 MiB/s | 31.1 KiB | 00m00s [148/750] Installing perl-Text-Unidecod 100% | 96.1 MiB/s | 491.8 KiB | 00m00s [149/750] Installing perl-Module-Load-1 100% | 0.0 B/s | 15.9 KiB | 00m00s [150/750] Installing perl-I18N-Langinfo 100% | 0.0 B/s | 40.0 KiB | 00m00s [151/750] Installing perl-Encode-Locale 100% | 19.6 MiB/s | 20.1 KiB | 00m00s [152/750] Installing perl-TimeDate-1:2. 100% | 100.1 MiB/s | 205.0 KiB | 00m00s [153/750] Installing perl-HTTP-Date-0:6 100% | 0.0 B/s | 45.7 KiB | 00m00s [154/750] Installing perl-lib-0:0.65-52 100% | 0.0 B/s | 8.9 KiB | 00m00s [155/750] Installing perl-Text-Balanced 100% | 109.9 MiB/s | 112.6 KiB | 00m00s [156/750] Installing perl-XML-Namespace 100% | 0.0 B/s | 46.1 KiB | 00m00s [157/750] Installing perl-XML-SAX-Base- 100% | 170.4 MiB/s | 174.5 KiB | 00m00s [158/750] Installing perl-Devel-StackTr 100% | 49.4 MiB/s | 50.6 KiB | 00m00s [159/750] Installing perl-Date-ISO8601- 100% | 0.0 B/s | 25.5 KiB | 00m00s [160/750] Installing perl-Params-SomeUt 100% | 100.3 MiB/s | 102.8 KiB | 00m00s [161/750] Installing perl-Sub-Install-0 100% | 0.0 B/s | 37.2 KiB | 00m00s [162/750] Installing perl-English-0:1.1 100% | 0.0 B/s | 6.6 KiB | 00m00s [163/750] Installing perl-Crypt-URandom 100% | 62.0 MiB/s | 63.5 KiB | 00m00s [164/750] Installing perl-Data-OptList- 100% | 52.5 MiB/s | 53.8 KiB | 00m00s [165/750] Installing perl-Parse-RecDesc 100% | 261.4 MiB/s | 535.4 KiB | 00m00s [166/750] Installing perl-File-Listing- 100% | 0.0 B/s | 42.5 KiB | 00m00s [167/750] Installing perl-Sys-Hostname- 100% | 0.0 B/s | 16.5 KiB | 00m00s [168/750] Installing perl-Mail-Sendmail 100% | 66.0 MiB/s | 67.6 KiB | 00m00s [169/750] Installing perl-Module-CoreLi 100% | 659.0 MiB/s | 1.3 MiB | 00m00s [170/750] Installing perl-Module-Metada 100% | 70.2 MiB/s | 71.9 KiB | 00m00s [171/750] Installing perl-Params-Valida 100% | 148.6 MiB/s | 152.1 KiB | 00m00s [172/750] Installing perl-List-SomeUtil 100% | 106.4 MiB/s | 109.0 KiB | 00m00s [173/750] Installing perl-Business-ISSN 100% | 11.2 MiB/s | 23.0 KiB | 00m00s [174/750] Installing perl-Date-Manip-0: 100% | 234.8 MiB/s | 10.8 MiB | 00m00s [175/750] Installing perl-Digest-SHA-1: 100% | 5.6 MiB/s | 114.8 KiB | 00m00s [176/750] Installing perl-Digest-HMAC-0 100% | 0.0 B/s | 31.5 KiB | 00m00s [177/750] Installing perl-NTLM-0:1.09-4 100% | 0.0 B/s | 32.7 KiB | 00m00s [178/750] Installing perl-Lingua-Transl 100% | 10.3 MiB/s | 179.3 KiB | 00m00s [179/750] Installing perl-FindBin-0:1.5 100% | 0.0 B/s | 7.2 KiB | 00m00s [180/750] Installing perl-Class-Inspect 100% | 57.9 MiB/s | 59.3 KiB | 00m00s [181/750] Installing perl-File-ShareDir 100% | 57.8 MiB/s | 59.2 KiB | 00m00s [182/750] Installing perl-WWW-RobotRule 100% | 0.0 B/s | 42.8 KiB | 00m00s [183/750] Installing perl-HTML-Tagset-0 100% | 0.0 B/s | 19.7 KiB | 00m00s [184/750] Installing perl-IO-HTML-0:1.0 100% | 45.7 MiB/s | 46.8 KiB | 00m00s [185/750] Installing perl-Compress-Raw- 100% | 74.1 MiB/s | 75.8 KiB | 00m00s [186/750] Installing perl-IO-Compress-0 100% | 52.8 MiB/s | 1.1 MiB | 00m00s [187/750] Installing perl-Net-HTTP-0:6. 100% | 76.8 MiB/s | 78.6 KiB | 00m00s [188/750] Installing perl-DirHandle-0:1 100% | 0.0 B/s | 3.8 KiB | 00m00s [189/750] Installing perl-Filter-2:1.65 100% | 80.9 MiB/s | 165.7 KiB | 00m00s [190/750] Installing perl-encoding-4:3. 100% | 147.8 MiB/s | 151.4 KiB | 00m00s [191/750] Installing perl-open-0:1.13-5 100% | 0.0 B/s | 11.7 KiB | 00m00s [192/750] Installing perl-Class-Accesso 100% | 41.9 MiB/s | 42.9 KiB | 00m00s [193/750] Installing perl-File-Slurper- 100% | 0.0 B/s | 30.0 KiB | 00m00s [194/750] Installing perl-IO-String-0:1 100% | 0.0 B/s | 17.8 KiB | 00m00s [195/750] Installing perl-IPC-Run3-0:0. 100% | 61.8 MiB/s | 63.3 KiB | 00m00s [196/750] Installing perl-Regexp-Common 100% | 154.3 MiB/s | 474.0 KiB | 00m00s [197/750] Installing perl-Sort-Key-0:1. 100% | 75.2 MiB/s | 77.0 KiB | 00m00s [198/750] Installing perl-Text-CSV-0:2. 100% | 358.4 MiB/s | 367.0 KiB | 00m00s [199/750] Installing perl-Text-Roman-0: 100% | 33.8 MiB/s | 34.7 KiB | 00m00s [200/750] Installing perl-Unicode-Colla 100% | 380.6 MiB/s | 4.2 MiB | 00m00s [201/750] Installing perl-XML-Writer-0: 100% | 67.0 MiB/s | 68.6 KiB | 00m00s [202/750] Installing perl-autovivificat 100% | 58.1 MiB/s | 59.5 KiB | 00m00s [203/750] Installing perl-Business-ISBN 100% | 309.4 MiB/s | 316.8 KiB | 00m00s [204/750] Installing perl-Business-ISBN 100% | 56.9 MiB/s | 58.2 KiB | 00m00s [205/750] Installing perl-Tie-Cycle-0:1 100% | 0.0 B/s | 25.5 KiB | 00m00s [206/750] Installing perl-Business-ISMN 100% | 0.0 B/s | 38.5 KiB | 00m00s [207/750] Installing perl-Class-Singlet 100% | 0.0 B/s | 41.4 KiB | 00m00s [208/750] Installing perl-ExtUtils-MM-U 100% | 0.0 B/s | 3.7 KiB | 00m00s [209/750] Installing perl-Mozilla-CA-0: 100% | 0.0 B/s | 17.8 KiB | 00m00s [210/750] Installing perl-List-UtilsBy- 100% | 0.0 B/s | 57.2 KiB | 00m00s [211/750] Installing perl-List-AllUtils 100% | 132.7 MiB/s | 135.9 KiB | 00m00s [212/750] Installing perl-IPC-SysV-0:2. 100% | 74.8 MiB/s | 76.6 KiB | 00m00s [213/750] Installing perl-Getopt-Tabula 100% | 86.0 MiB/s | 88.1 KiB | 00m00s [214/750] Installing perl-Text-BibTeX-0 100% | 26.5 MiB/s | 515.2 KiB | 00m00s [215/750] Installing perl-MIME-Charset- 100% | 104.8 MiB/s | 107.3 KiB | 00m00s [216/750] Installing perl-Unicode-LineB 100% | 129.6 MiB/s | 265.4 KiB | 00m00s [217/750] Installing perl-Number-Compar 100% | 0.0 B/s | 5.4 KiB | 00m00s [218/750] Installing perl-Text-Glob-0:0 100% | 0.0 B/s | 9.3 KiB | 00m00s [219/750] Installing perl-File-Find-Rul 100% | 2.6 MiB/s | 44.5 KiB | 00m00s [220/750] Installing perl-Data-Compare- 100% | 56.8 MiB/s | 58.1 KiB | 00m00s [221/750] Installing perl-Clone-PP-0:1. 100% | 0.0 B/s | 14.0 KiB | 00m00s [222/750] Installing perl-MRO-Compat-0: 100% | 43.8 MiB/s | 44.9 KiB | 00m00s [223/750] Installing perl-Convert-ASN1- 100% | 169.3 MiB/s | 173.4 KiB | 00m00s [224/750] Installing perl-Mail-Sender-1 100% | 158.6 MiB/s | 162.5 KiB | 00m00s [225/750] Installing perl-Sys-Syslog-0: 100% | 94.4 MiB/s | 96.7 KiB | 00m00s [226/750] Installing perl-Tie-RefHash-0 100% | 0.0 B/s | 37.4 KiB | 00m00s [227/750] Installing perl-autodie-0:2.3 100% | 214.0 MiB/s | 219.2 KiB | 00m00s [228/750] Installing perl-Class-Data-In 100% | 0.0 B/s | 7.0 KiB | 00m00s [229/750] Installing perl-Exception-Cla 100% | 96.1 MiB/s | 98.4 KiB | 00m00s [230/750] Installing perl-Class-Method- 100% | 107.0 MiB/s | 109.6 KiB | 00m00s [231/750] Installing perl-Role-Tiny-0:2 100% | 63.6 MiB/s | 65.2 KiB | 00m00s [232/750] Installing perl-GSSAPI-0:0.28 100% | 121.2 MiB/s | 124.1 KiB | 00m00s [233/750] Installing perl-Email-Date-Fo 100% | 0.0 B/s | 26.0 KiB | 00m00s [234/750] Installing perl-MIME-Lite-0:3 100% | 231.1 MiB/s | 236.7 KiB | 00m00s [235/750] Installing perl-Net-SMTP-SSL- 100% | 0.0 B/s | 5.3 KiB | 00m00s [236/750] Installing perl-MailTools-0:2 100% | 103.8 MiB/s | 212.5 KiB | 00m00s [237/750] Installing perl-PadWalker-0:2 100% | 41.5 MiB/s | 42.5 KiB | 00m00s [238/750] Installing perl-Devel-Caller- 100% | 0.0 B/s | 24.9 KiB | 00m00s [239/750] Installing perl-Devel-LexAlia 100% | 0.0 B/s | 16.8 KiB | 00m00s [240/750] Installing perl-Package-Gener 100% | 0.0 B/s | 31.5 KiB | 00m00s [241/750] Installing perl-Sub-Exporter- 100% | 196.9 MiB/s | 201.7 KiB | 00m00s [242/750] Installing perl-Sub-Exporter- 100% | 0.0 B/s | 28.9 KiB | 00m00s [243/750] Installing perl-Devel-GlobalD 100% | 18.6 MiB/s | 19.0 KiB | 00m00s [244/750] Installing perl-Hash-Util-Fie 100% | 62.7 MiB/s | 64.2 KiB | 00m00s [245/750] Installing perl-Variable-Magi 100% | 126.4 MiB/s | 129.4 KiB | 00m00s [246/750] Installing perl-B-Hooks-EndOf 100% | 73.4 MiB/s | 75.1 KiB | 00m00s [247/750] Installing perl-Package-Stash 100% | 65.2 MiB/s | 66.8 KiB | 00m00s [248/750] Installing perl-Package-Stash 100% | 3.2 MiB/s | 58.2 KiB | 00m00s [249/750] Installing perl-namespace-cle 100% | 43.5 MiB/s | 44.6 KiB | 00m00s [250/750] Installing perl-namespace-aut 100% | 44.0 MiB/s | 45.0 KiB | 00m00s [251/750] Installing perl-deprecate-0:0 100% | 0.0 B/s | 7.0 KiB | 00m00s [252/750] Installing perl-Text-Soundex- 100% | 47.7 MiB/s | 48.9 KiB | 00m00s [253/750] Installing perl-XString-0:0.0 100% | 33.8 MiB/s | 34.6 KiB | 00m00s [254/750] Installing perl-DynaLoader-Fu 100% | 0.0 B/s | 20.7 KiB | 00m00s [255/750] Installing perl-Devel-CallChe 100% | 34.4 MiB/s | 35.3 KiB | 00m00s [256/750] Installing perl-Params-Classi 100% | 52.1 MiB/s | 53.3 KiB | 00m00s [257/750] Installing perl-DateTime-Time 100% | 0.0 B/s | 29.6 KiB | 00m00s [258/750] Installing perl-DateTime-Time 100% | 0.0 B/s | 25.8 KiB | 00m00s [259/750] Installing perl-Math-Complex- 100% | 0.0 B/s | 86.0 KiB | 00m00s [260/750] Installing perl-Math-BigInt-1 100% | 354.7 MiB/s | 1.1 MiB | 00m00s [261/750] Installing perl-Data-Uniqid-0 100% | 0.0 B/s | 5.8 KiB | 00m00s [262/750] Installing perl-JSON-0:4.11-2 100% | 264.0 MiB/s | 270.4 KiB | 00m00s [263/750] Installing perl-JSON-PP-1:4.1 100% | 8.3 MiB/s | 144.5 KiB | 00m00s [264/750] Installing perl-I18N-LangTags 100% | 81.8 MiB/s | 83.8 KiB | 00m00s [265/750] Installing perl-Locale-Makete 100% | 169.8 MiB/s | 173.9 KiB | 00m00s [266/750] Installing perl-Locale-Makete 100% | 0.0 B/s | 13.5 KiB | 00m00s [267/750] Installing perl-Params-Check- 100% | 0.0 B/s | 28.6 KiB | 00m00s [268/750] Installing perl-Module-Load-C 100% | 0.0 B/s | 29.9 KiB | 00m00s [269/750] Installing perl-IPC-Cmd-2:1.0 100% | 0.0 B/s | 85.8 KiB | 00m00s [270/750] Installing perl-File-Compare- 100% | 0.0 B/s | 6.2 KiB | 00m00s [271/750] Installing perl-Tie-0:4.6-527 100% | 33.1 MiB/s | 33.9 KiB | 00m00s [272/750] Installing perl-Authen-SASL-0 100% | 136.8 MiB/s | 140.0 KiB | 00m00s [273/750] Installing perl-meta-notation 100% | 0.0 B/s | 2.3 KiB | 00m00s [274/750] Installing perl-sigtrap-0:1.1 100% | 0.0 B/s | 11.5 KiB | 00m00s [275/750] Installing perl-Unicode-UCD-0 100% | 202.1 MiB/s | 207.0 KiB | 00m00s [276/750] Installing perl-Ref-Util-XS-0 100% | 43.5 MiB/s | 44.5 KiB | 00m00s [277/750] Installing perl-Ref-Util-0:0. 100% | 32.4 MiB/s | 33.2 KiB | 00m00s [278/750] Installing ruby-libs-0:4.0.7- 100% | 336.5 MiB/s | 15.5 MiB | 00m00s [279/750] Installing ruby-0:4.0.7-40.fc 100% | 5.7 MiB/s | 99.5 KiB | 00m00s [280/750] Installing rubypick-0:1.1.1-2 100% | 301.2 KiB/s | 5.1 KiB | 00m00s [281/750] Installing teckit-0:2.5.13-3. 100% | 97.8 MiB/s | 2.2 MiB | 00m00s [282/750] Installing google-noto-fonts- 100% | 0.0 B/s | 18.5 KiB | 00m00s [283/750] Installing google-noto-sans-v 100% | 347.8 MiB/s | 1.4 MiB | 00m00s [284/750] Installing default-fonts-core 100% | 17.8 MiB/s | 18.2 KiB | 00m00s [285/750] Installing fontconfig-0:2.18. 100% | 942.3 KiB/s | 1.1 MiB | 00m01s [286/750] Installing ncurses-c++-libs-0 100% | 74.8 MiB/s | 153.3 KiB | 00m00s [287/750] Installing ncurses-devel-0:6. 100% | 34.0 MiB/s | 1.0 MiB | 00m00s [288/750] Installing libXau-0:1.0.12-5. 100% | 72.6 MiB/s | 74.3 KiB | 00m00s [289/750] Installing libxcb-0:1.17.0-8. 100% | 270.3 MiB/s | 1.1 MiB | 00m00s [290/750] Installing mailcap-0:2.1.54-1 100% | 85.0 MiB/s | 87.1 KiB | 00m00s [291/750] Installing perl-LWP-MediaType 100% | 80.0 MiB/s | 81.9 KiB | 00m00s [292/750] Installing perl-HTTP-Message- 100% | 216.0 MiB/s | 221.2 KiB | 00m00s [293/750] Installing perl-HTML-Parser-0 100% | 140.1 MiB/s | 286.9 KiB | 00m00s [294/750] Installing perl-HTTP-Negotiat 100% | 28.0 MiB/s | 28.7 KiB | 00m00s [295/750] Installing perltidy-0:2026082 100% | 171.6 MiB/s | 4.5 MiB | 00m00s [296/750] Installing perl-Eval-Closure- 100% | 0.0 B/s | 34.6 KiB | 00m00s [297/750] Installing perl-Params-Valida 100% | 92.0 MiB/s | 94.2 KiB | 00m00s [298/750] Installing perl-Specio-0:0.53 100% | 34.1 MiB/s | 349.2 KiB | 00m00s [299/750] Installing perl-DateTime-Loca 100% | 309.6 MiB/s | 25.7 MiB | 00m00s [300/750] Installing perl-DateTime-2:1. 100% | 94.4 MiB/s | 386.9 KiB | 00m00s [301/750] Installing perl-DateTime-Time 100% | 420.2 MiB/s | 6.3 MiB | 00m00s [302/750] Installing perl-Log-Dispatch- 100% | 73.2 MiB/s | 150.0 KiB | 00m00s [303/750] Installing perl-Log-Dispatch- 100% | 53.2 MiB/s | 54.5 KiB | 00m00s [304/750] Installing perl-DateTime-Form 100% | 96.6 MiB/s | 98.9 KiB | 00m00s [305/750] Installing perl-DateTime-Form 100% | 104.0 MiB/s | 213.0 KiB | 00m00s [306/750] Installing perl-DateTime-Cale 100% | 0.0 B/s | 34.3 KiB | 00m00s [307/750] Installing perl-HTTP-Cookies- 100% | 80.4 MiB/s | 82.3 KiB | 00m00s [308/750] Installing perl-libwww-perl-0 100% | 23.9 MiB/s | 489.7 KiB | 00m00s [309/750] Installing perl-XML-Parser-0: 100% | 233.8 MiB/s | 718.4 KiB | 00m00s [310/750] Installing perl-XML-XPath-0:1 100% | 11.4 MiB/s | 210.5 KiB | 00m00s [311/750] Installing texlive-unicode-da 100% | 486.6 MiB/s | 3.4 MiB | 00m00s [312/750] Installing texlive-tex-ini-fi 100% | 17.2 MiB/s | 17.6 KiB | 00m00s [313/750] Installing texlive-plain-12:s 100% | 111.0 MiB/s | 113.6 KiB | 00m00s [314/750] Installing texlive-knuth-lib- 100% | 103.8 MiB/s | 106.3 KiB | 00m00s [315/750] Installing texlive-hyphen-bas 100% | 83.5 MiB/s | 85.5 KiB | 00m00s [316/750] Installing texlive-hyph-utf8- 100% | 384.0 MiB/s | 393.2 KiB | 00m00s [317/750] Installing texlive-graphics-d 100% | 99.3 MiB/s | 101.7 KiB | 00m00s [318/750] Installing texlive-etex-12:sv 100% | 255.7 MiB/s | 523.6 KiB | 00m00s [319/750] Installing texlive-cm-12:svn5 100% | 168.8 MiB/s | 1.0 MiB | 00m00s [320/750] Installing texlive-luatex-12: 100% | 252.8 MiB/s | 9.4 MiB | 00m00s [321/750] Installing texlive-gsftopk-12 100% | 2.8 MiB/s | 48.3 KiB | 00m00s [322/750] Installing texlive-texlive.in 100% | 54.3 MiB/s | 1.0 MiB | 00m00s [323/750] Installing texlive-texlive-sc 100% | 18.1 MiB/s | 351.9 KiB | 00m00s [324/750] Installing texlive-kpathsea-1 100% | 94.1 MiB/s | 2.1 MiB | 00m00s [325/750] Installing texlive-iftex-12:s 100% | 262.3 MiB/s | 268.6 KiB | 00m00s [326/750] Installing texlive-infwarerr- 100% | 300.3 MiB/s | 307.5 KiB | 00m00s [327/750] Installing texlive-ltxcmds-12 100% | 437.2 MiB/s | 447.7 KiB | 00m00s [328/750] Installing texlive-pdftexcmds 100% | 415.6 MiB/s | 425.6 KiB | 00m00s [329/750] Installing texlive-amsmath-12 100% | 601.2 MiB/s | 3.0 MiB | 00m00s [330/750] Installing texlive-atbegshi-1 100% | 86.9 MiB/s | 445.1 KiB | 00m00s [331/750] Installing texlive-kvsetkeys- 100% | 418.8 MiB/s | 428.8 KiB | 00m00s [332/750] Installing texlive-etexcmds-1 100% | 157.4 MiB/s | 322.3 KiB | 00m00s [333/750] Installing texlive-amsfonts-1 100% | 330.8 MiB/s | 7.3 MiB | 00m00s [334/750] Installing texlive-atveryend- 100% | 297.2 MiB/s | 304.3 KiB | 00m00s [335/750] Installing texlive-auxhook-12 100% | 296.1 MiB/s | 303.2 KiB | 00m00s [336/750] Installing texlive-latex-font 100% | 132.8 MiB/s | 136.0 KiB | 00m00s [337/750] Installing texlive-url-12:svn 100% | 293.8 MiB/s | 300.9 KiB | 00m00s [338/750] Installing texlive-pdfescape- 100% | 368.3 MiB/s | 377.2 KiB | 00m00s [339/750] Installing texlive-everyshi-1 100% | 155.2 MiB/s | 158.9 KiB | 00m00s [340/750] Installing texlive-intcalc-12 100% | 461.7 MiB/s | 472.8 KiB | 00m00s [341/750] Installing texlive-kvdefineke 100% | 308.1 MiB/s | 315.5 KiB | 00m00s [342/750] Installing texlive-l3backend- 100% | 542.4 MiB/s | 1.1 MiB | 00m00s [343/750] Installing texlive-bigintcalc 100% | 504.7 MiB/s | 516.8 KiB | 00m00s [344/750] Installing texlive-uniquecoun 100% | 306.1 MiB/s | 313.5 KiB | 00m00s [345/750] Installing texlive-fp-12:svn7 100% | 356.2 MiB/s | 364.7 KiB | 00m00s [346/750] Installing texlive-firstaid-1 100% | 328.7 MiB/s | 336.5 KiB | 00m00s [347/750] Installing texlive-letltxmacr 100% | 305.3 MiB/s | 312.6 KiB | 00m00s [348/750] Installing texlive-lua-uni-al 100% | 159.4 MiB/s | 163.2 KiB | 00m00s [349/750] Installing texlive-l3kernel-1 100% | 632.6 MiB/s | 15.2 MiB | 00m00s [350/750] Installing texlive-l3packages 100% | 633.2 MiB/s | 1.9 MiB | 00m00s [351/750] Installing texlive-etex-pkg-1 100% | 0.0 B/s | 38.8 KiB | 00m00s [352/750] Installing texlive-etoolbox-1 100% | 355.8 MiB/s | 364.3 KiB | 00m00s [353/750] Installing texlive-ncctools-1 100% | 520.1 MiB/s | 3.1 MiB | 00m00s [354/750] Installing texlive-bigfoot-12 100% | 423.9 MiB/s | 868.2 KiB | 00m00s [355/750] Installing texlive-multido-12 100% | 161.2 MiB/s | 165.0 KiB | 00m00s [356/750] Installing texlive-xstring-12 100% | 440.0 MiB/s | 901.1 KiB | 00m00s [357/750] Installing texlive-ulem-12:sv 100% | 183.8 MiB/s | 188.2 KiB | 00m00s [358/750] Installing texlive-fancyhdr-1 100% | 671.8 MiB/s | 1.3 MiB | 00m00s [359/750] Installing texlive-grfext-12: 100% | 321.3 MiB/s | 329.1 KiB | 00m00s [360/750] Installing texlive-stringenc- 100% | 351.4 MiB/s | 1.1 MiB | 00m00s [361/750] Installing texlive-refcount-1 100% | 341.0 MiB/s | 349.2 KiB | 00m00s [362/750] Installing texlive-booktabs-1 100% | 308.7 MiB/s | 316.1 KiB | 00m00s [363/750] Installing texlive-everysel-1 100% | 448.6 MiB/s | 459.4 KiB | 00m00s [364/750] Installing texlive-float-12:s 100% | 157.6 MiB/s | 161.4 KiB | 00m00s [365/750] Installing texlive-setspace-1 100% | 232.0 MiB/s | 237.6 KiB | 00m00s [366/750] Installing texlive-latexconfi 100% | 7.7 MiB/s | 23.8 KiB | 00m00s [367/750] Installing texlive-lm-12:svn7 100% | 499.6 MiB/s | 43.0 MiB | 00m00s [368/750] Installing texlive-zapfding-1 100% | 21.5 MiB/s | 88.0 KiB | 00m00s [369/750] Installing texlive-ec-12:svn2 100% | 125.5 MiB/s | 2.8 MiB | 00m00s [370/750] Installing texlive-lua-alt-ge 100% | 16.8 MiB/s | 17.2 KiB | 00m00s [371/750] Installing texlive-tex-12:svn 100% | 22.1 MiB/s | 406.5 KiB | 00m00s [372/750] Installing texlive-stmaryrd-1 100% | 218.2 MiB/s | 446.8 KiB | 00m00s [373/750] Installing texlive-wasysym-12 100% | 191.0 MiB/s | 195.6 KiB | 00m00s [374/750] Installing texlive-svn-prov-1 100% | 311.4 MiB/s | 318.9 KiB | 00m00s [375/750] Installing texlive-everyhook- 100% | 136.3 MiB/s | 139.6 KiB | 00m00s [376/750] Installing texlive-footmisc-1 100% | 717.2 MiB/s | 734.4 KiB | 00m00s [377/750] Installing texlive-xpatch-12: 100% | 477.1 MiB/s | 488.6 KiB | 00m00s [378/750] Installing texlive-tagpdf-12: 100% | 543.2 MiB/s | 3.8 MiB | 00m00s [379/750] Installing texlive-bitset-12: 100% | 324.0 MiB/s | 663.5 KiB | 00m00s [380/750] Installing texlive-dvips-12:s 100% | 74.8 MiB/s | 1.6 MiB | 00m00s [381/750] Installing texlive-transparen 100% | 295.7 MiB/s | 302.8 KiB | 00m00s [382/750] Installing texlive-hopatch-12 100% | 339.1 MiB/s | 347.2 KiB | 00m00s [383/750] Installing texlive-hycolor-12 100% | 403.5 MiB/s | 413.1 KiB | 00m00s [384/750] Installing texlive-enumitem-1 100% | 263.1 MiB/s | 269.5 KiB | 00m00s [385/750] Installing texlive-texlive-sc 100% | 6.3 MiB/s | 115.7 KiB | 00m00s [386/750] Installing texlive-anysize-12 100% | 50.8 MiB/s | 52.0 KiB | 00m00s [387/750] Installing texlive-euenc-12:s 100% | 186.8 MiB/s | 191.3 KiB | 00m00s [388/750] Installing texlive-euler-12:s 100% | 272.2 MiB/s | 278.8 KiB | 00m00s [389/750] Installing texlive-fancybox-1 100% | 359.7 MiB/s | 368.3 KiB | 00m00s [390/750] Installing texlive-index-12:s 100% | 317.1 MiB/s | 324.7 KiB | 00m00s [391/750] Installing texlive-amscls-12: 100% | 481.2 MiB/s | 1.4 MiB | 00m00s [392/750] Installing texlive-graphics-c 100% | 0.0 B/s | 5.2 KiB | 00m00s [393/750] Installing texlive-lm-math-12 100% | 277.1 MiB/s | 851.3 KiB | 00m00s [394/750] Installing texlive-extractbb- 100% | 2.4 MiB/s | 42.4 KiB | 00m00s [395/750] Installing texlive-glyphlist- 100% | 0.0 B/s | 91.1 KiB | 00m00s [396/750] Installing texlive-modes-12:s 100% | 124.5 MiB/s | 382.4 KiB | 00m00s [397/750] Installing texlive-cm-super-1 100% | 587.4 MiB/s | 65.2 MiB | 00m00s [398/750] Installing texlive-symbol-12: 100% | 85.3 MiB/s | 87.3 KiB | 00m00s [399/750] Installing texlive-paralist-1 100% | 247.2 MiB/s | 253.2 KiB | 00m00s [400/750] Installing texlive-placeins-1 100% | 254.1 MiB/s | 260.2 KiB | 00m00s [401/750] Installing texlive-dehyph-12: 100% | 117.8 MiB/s | 241.2 KiB | 00m00s [402/750] Installing texlive-pdftex-12: 100% | 183.0 MiB/s | 7.1 MiB | 00m00s [403/750] Installing texlive-mptopdf-12 100% | 8.8 MiB/s | 153.5 KiB | 00m00s [404/750] Installing tex-preview-0:14.2 100% | 389.5 MiB/s | 398.8 KiB | 00m00s [405/750] Installing texlive-xetexconfi 100% | 0.0 B/s | 19.7 KiB | 00m00s [406/750] Installing texlive-fpl-12:svn 100% | 340.1 MiB/s | 696.5 KiB | 00m00s [407/750] Installing texlive-marvosym-1 100% | 220.0 MiB/s | 675.8 KiB | 00m00s [408/750] Installing texlive-palatino-1 100% | 187.6 MiB/s | 1.1 MiB | 00m00s [409/750] Installing texlive-wasy-12:sv 100% | 464.0 MiB/s | 475.1 KiB | 00m00s [410/750] Installing texlive-xesearch-1 100% | 355.2 MiB/s | 727.5 KiB | 00m00s [411/750] Installing texlive-adobemappi 100% | 428.2 MiB/s | 20.1 MiB | 00m00s [412/750] Installing texlive-ipaex-12:s 100% | 455.7 MiB/s | 40.6 MiB | 00m00s [413/750] Installing texlive-ptex-base- 100% | 43.5 MiB/s | 44.6 KiB | 00m00s [414/750] Installing texlive-l3backend- 100% | 542.4 MiB/s | 1.1 MiB | 00m00s [415/750] Installing texlive-l3kernel-d 100% | 633.2 MiB/s | 15.2 MiB | 00m00s [416/750] Installing texlive-ptex-fonts 100% | 533.6 MiB/s | 4.8 MiB | 00m00s [417/750] Installing texlive-wasy-type1 100% | 328.8 MiB/s | 336.7 KiB | 00m00s [418/750] Installing texlive-mathpazo-1 100% | 266.6 MiB/s | 545.9 KiB | 00m00s [419/750] Installing texlive-ragged2e-1 100% | 391.2 MiB/s | 801.2 KiB | 00m00s [420/750] Installing texlive-mfirstuc-1 100% | 553.1 MiB/s | 1.1 MiB | 00m00s [421/750] Installing texlive-interchar- 100% | 142.4 MiB/s | 145.8 KiB | 00m00s [422/750] Installing texlive-regexpatch 100% | 557.3 MiB/s | 570.7 KiB | 00m00s [423/750] Installing texlive-l3experime 100% | 544.8 MiB/s | 1.6 MiB | 00m00s [424/750] Installing texlive-hypcap-12: 100% | 310.6 MiB/s | 318.1 KiB | 00m00s [425/750] Installing texlive-euro-12:sv 100% | 257.2 MiB/s | 263.4 KiB | 00m00s [426/750] Installing texlive-alphalph-1 100% | 368.3 MiB/s | 377.1 KiB | 00m00s [427/750] Installing texlive-pagesel-12 100% | 347.7 MiB/s | 356.1 KiB | 00m00s [428/750] Installing texlive-xurl-12:sv 100% | 75.6 MiB/s | 77.4 KiB | 00m00s [429/750] Installing texlive-catchfile- 100% | 312.5 MiB/s | 320.0 KiB | 00m00s [430/750] Installing texlive-ucharclass 100% | 198.3 MiB/s | 203.0 KiB | 00m00s [431/750] Installing texlive-unisugar-1 100% | 527.9 MiB/s | 540.6 KiB | 00m00s [432/750] Installing texlive-cite-12:sv 100% | 307.3 MiB/s | 314.7 KiB | 00m00s [433/750] Installing texlive-cmap-12:sv 100% | 52.0 MiB/s | 53.2 KiB | 00m00s [434/750] Installing texlive-extsizes-1 100% | 339.4 MiB/s | 347.6 KiB | 00m00s [435/750] Installing texlive-footnotehy 100% | 114.8 MiB/s | 117.6 KiB | 00m00s [436/750] Installing texlive-latexbug-1 100% | 280.6 MiB/s | 287.3 KiB | 00m00s [437/750] Installing texlive-ltx-talk-1 100% | 405.9 MiB/s | 1.2 MiB | 00m00s [438/750] Installing texlive-lua-unicod 100% | 68.3 MiB/s | 279.9 KiB | 00m00s [439/750] Installing texlive-lwarp-12:s 100% | 143.9 MiB/s | 4.9 MiB | 00m00s [440/750] Installing texlive-mdwtools-1 100% | 419.5 MiB/s | 2.1 MiB | 00m00s [441/750] Installing texlive-memoir-12: 100% | 539.0 MiB/s | 4.9 MiB | 00m00s [442/750] Installing texlive-ntgclass-1 100% | 594.9 MiB/s | 2.4 MiB | 00m00s [443/750] Installing texlive-rcs-12:svn 100% | 235.8 MiB/s | 241.4 KiB | 00m00s [444/750] Installing texlive-sansmath-1 100% | 193.3 MiB/s | 197.9 KiB | 00m00s [445/750] Installing texlive-section-12 100% | 402.2 MiB/s | 411.9 KiB | 00m00s [446/750] Installing texlive-sepnum-12: 100% | 364.1 MiB/s | 372.9 KiB | 00m00s [447/750] Installing texlive-textcase-1 100% | 244.1 MiB/s | 250.0 KiB | 00m00s [448/750] Installing texlive-ucharcat-1 100% | 172.9 MiB/s | 177.0 KiB | 00m00s [449/750] Installing texlive-fix2col-12 100% | 230.1 MiB/s | 235.7 KiB | 00m00s [450/750] Installing texlive-mfnfss-12: 100% | 496.2 MiB/s | 508.2 KiB | 00m00s [451/750] Installing texlive-pslatex-12 100% | 38.1 MiB/s | 39.0 KiB | 00m00s [452/750] Installing texlive-pspicture- 100% | 87.2 MiB/s | 89.3 KiB | 00m00s [453/750] Installing texlive-finstrut-1 100% | 227.8 MiB/s | 233.2 KiB | 00m00s [454/750] Installing texlive-luabidi-12 100% | 185.3 MiB/s | 189.8 KiB | 00m00s [455/750] Installing texlive-makecmds-1 100% | 150.5 MiB/s | 154.1 KiB | 00m00s [456/750] Installing texlive-unibidi-lu 100% | 382.3 MiB/s | 782.9 KiB | 00m00s [457/750] Installing texlive-chicago-12 100% | 0.0 B/s | 48.6 KiB | 00m00s [458/750] Installing texlive-pdfcolmk-1 100% | 0.0 B/s | 20.7 KiB | 00m00s [459/750] Installing texlive-hyphen-eng 100% | 11.7 MiB/s | 179.2 KiB | 00m00s [460/750] Installing texlive-babel-engl 100% | 170.5 MiB/s | 174.6 KiB | 00m00s [461/750] Installing texlive-bibtex-12: 100% | 51.1 MiB/s | 1.2 MiB | 00m00s [462/750] Installing texlive-colorprofi 100% | 135.3 MiB/s | 277.1 KiB | 00m00s [463/750] Installing texlive-enctex-12: 100% | 284.2 MiB/s | 582.0 KiB | 00m00s [464/750] Installing texlive-hyphenex-1 100% | 0.0 B/s | 27.1 KiB | 00m00s [465/750] Installing texlive-knuth-loca 100% | 110.2 MiB/s | 112.9 KiB | 00m00s [466/750] Installing texlive-luahbtex-1 100% | 194.9 MiB/s | 6.4 MiB | 00m00s [467/750] Installing texlive-makeindex- 100% | 27.8 MiB/s | 511.9 KiB | 00m00s [468/750] Installing texlive-mflogo-12: 100% | 273.3 MiB/s | 279.9 KiB | 00m00s [469/750] Installing texlive-mfware-12: 100% | 11.3 MiB/s | 207.6 KiB | 00m00s [470/750] Installing texlive-texlive-co 100% | 332.8 MiB/s | 681.5 KiB | 00m00s [471/750] Installing texlive-texlive-en 100% | 620.2 MiB/s | 6.2 MiB | 00m00s [472/750] Installing texlive-texlive-ms 100% | 482.9 MiB/s | 1.4 MiB | 00m00s [473/750] Installing texlive-epstopdf-1 100% | 2.7 MiB/s | 47.0 KiB | 00m00s [474/750] Installing texlive-beton-12:s 100% | 123.9 MiB/s | 126.9 KiB | 00m00s [475/750] Installing texlive-citeref-12 100% | 0.0 B/s | 73.5 KiB | 00m00s [476/750] Installing texlive-natbib-12: 100% | 610.9 MiB/s | 625.6 KiB | 00m00s [477/750] Installing texlive-parallel-1 100% | 174.5 MiB/s | 178.7 KiB | 00m00s [478/750] Installing texlive-lualibs-12 100% | 290.9 MiB/s | 893.6 KiB | 00m00s [479/750] Installing texlive-changepage 100% | 364.6 MiB/s | 373.4 KiB | 00m00s [480/750] Installing texlive-notoccite- 100% | 227.5 MiB/s | 232.9 KiB | 00m00s [481/750] Installing texlive-latex-base 100% | 651.7 MiB/s | 51.5 MiB | 00m00s [482/750] Installing texlive-ntheorem-1 100% | 260.1 MiB/s | 532.6 KiB | 00m00s [483/750] Installing texlive-minitoc-12 100% | 480.1 MiB/s | 9.6 MiB | 00m00s [484/750] Installing texlive-hypdoc-12: 100% | 352.6 MiB/s | 361.1 KiB | 00m00s [485/750] Installing texlive-hyperref-1 100% | 536.3 MiB/s | 5.4 MiB | 00m00s [486/750] Installing texlive-graphics-1 100% | 623.4 MiB/s | 3.1 MiB | 00m00s [487/750] Installing texlive-tools-12:s 100% | 648.8 MiB/s | 8.4 MiB | 00m00s [488/750] Installing texlive-kvoptions- 100% | 538.7 MiB/s | 551.6 KiB | 00m00s [489/750] Installing texlive-epstopdf-p 100% | 378.9 MiB/s | 388.0 KiB | 00m00s [490/750] Installing texlive-gettitlest 100% | 332.2 MiB/s | 340.1 KiB | 00m00s [491/750] Installing texlive-rerunfilec 100% | 353.6 MiB/s | 362.1 KiB | 00m00s [492/750] Installing texlive-xkeyval-12 100% | 332.8 MiB/s | 681.6 KiB | 00m00s [493/750] Installing texlive-psnfss-12: 100% | 105.2 MiB/s | 431.1 KiB | 00m00s [494/750] Installing texlive-latex-12:s 100% | 514.4 MiB/s | 48.9 MiB | 00m00s [495/750] Installing texlive-tipa-12:sv 100% | 466.3 MiB/s | 6.5 MiB | 00m00s [496/750] Installing texlive-xunicode-1 100% | 215.9 MiB/s | 221.1 KiB | 00m00s [497/750] Installing texlive-hologo-12: 100% | 658.5 MiB/s | 674.3 KiB | 00m00s [498/750] Installing texlive-mathtools- 100% | 631.6 MiB/s | 1.3 MiB | 00m00s [499/750] Installing texlive-colortbl-1 100% | 679.8 MiB/s | 696.1 KiB | 00m00s [500/750] Installing texlive-xcolor-12: 100% | 274.1 MiB/s | 1.1 MiB | 00m00s [501/750] Installing texlive-pgf-12:svn 100% | 423.1 MiB/s | 25.0 MiB | 00m00s [502/750] Installing texlive-filehook-1 100% | 358.7 MiB/s | 367.3 KiB | 00m00s [503/750] Installing texlive-currfile-1 100% | 210.4 MiB/s | 215.4 KiB | 00m00s [504/750] Installing texlive-jknapltx-1 100% | 58.7 MiB/s | 60.1 KiB | 00m00s [505/750] Installing texlive-geometry-1 100% | 490.4 MiB/s | 1.0 MiB | 00m00s [506/750] Installing texlive-lualatex-m 100% | 229.2 MiB/s | 234.7 KiB | 00m00s [507/750] Installing texlive-eso-pic-12 100% | 324.3 MiB/s | 332.1 KiB | 00m00s [508/750] Installing texlive-fmtcount-1 100% | 289.1 MiB/s | 888.1 KiB | 00m00s [509/750] Installing texlive-fonts-tlwg 100% | 370.7 MiB/s | 8.5 MiB | 00m00s [510/750] Installing texlive-grffile-12 100% | 123.9 MiB/s | 380.7 KiB | 00m00s [511/750] Installing texlive-tex-gyre-1 100% | 478.5 MiB/s | 37.8 MiB | 00m00s [512/750] Installing texlive-koma-scrip 100% | 514.5 MiB/s | 14.9 MiB | 00m00s [513/750] Installing texlive-carlisle-1 100% | 116.3 MiB/s | 119.1 KiB | 00m00s [514/750] Installing texlive-ifplatform 100% | 168.3 MiB/s | 172.3 KiB | 00m00s [515/750] Installing texlive-siunitx-12 100% | 503.0 MiB/s | 1.5 MiB | 00m00s [516/750] Installing texlive-pst-calcul 100% | 65.8 MiB/s | 67.4 KiB | 00m00s [517/750] Installing texlive-sttools-12 100% | 386.2 MiB/s | 791.0 KiB | 00m00s [518/750] Installing texlive-newfloat-1 100% | 231.2 MiB/s | 236.7 KiB | 00m00s [519/750] Installing texlive-caption-12 100% | 479.0 MiB/s | 1.9 MiB | 00m00s [520/750] Installing texlive-pdflscape- 100% | 335.2 MiB/s | 343.3 KiB | 00m00s [521/750] Installing texlive-translator 100% | 170.9 MiB/s | 525.1 KiB | 00m00s [522/750] Installing texlive-pdfcol-12: 100% | 338.7 MiB/s | 346.8 KiB | 00m00s [523/750] Installing texlive-sauerj-12: 100% | 204.8 MiB/s | 1.0 MiB | 00m00s [524/750] Installing texlive-japanese-o 100% | 656.0 MiB/s | 42.6 MiB | 00m00s [525/750] Installing texlive-bookmark-1 100% | 271.6 MiB/s | 556.3 KiB | 00m00s [526/750] Installing texlive-cqubeamer- 100% | 614.5 MiB/s | 3.1 MiB | 00m00s [527/750] Installing texlive-pdfcolfoot 100% | 329.2 MiB/s | 337.1 KiB | 00m00s [528/750] Installing texlive-subfig-12: 100% | 368.4 MiB/s | 754.5 KiB | 00m00s [529/750] Installing texlive-sansmathac 100% | 109.6 MiB/s | 224.4 KiB | 00m00s [530/750] Installing texlive-beamer-12: 100% | 443.0 MiB/s | 4.9 MiB | 00m00s [531/750] Installing texlive-garuda-c90 100% | 34.7 MiB/s | 35.6 KiB | 00m00s [532/750] Installing texlive-norasi-c90 100% | 45.4 MiB/s | 46.5 KiB | 00m00s [533/750] Installing texlive-datetime-1 100% | 400.1 MiB/s | 819.3 KiB | 00m00s [534/750] Installing texlive-bidipagegr 100% | 0.0 B/s | 60.2 KiB | 00m00s [535/750] Installing texlive-tkz-tab-12 100% | 532.8 MiB/s | 545.6 KiB | 00m00s [536/750] Installing texlive-na-positio 100% | 115.4 MiB/s | 118.1 KiB | 00m00s [537/750] Installing texlive-tikz-cd-12 100% | 350.4 MiB/s | 358.8 KiB | 00m00s [538/750] Installing texlive-ctable-12: 100% | 400.9 MiB/s | 821.1 KiB | 00m00s [539/750] Installing texlive-microtype- 100% | 624.5 MiB/s | 3.1 MiB | 00m00s [540/750] Installing texlive-xespotcolo 100% | 178.4 MiB/s | 182.7 KiB | 00m00s [541/750] Installing texlive-passivetex 100% | 289.9 MiB/s | 296.8 KiB | 00m00s [542/750] Installing texlive-ltxmisc-12 100% | 81.7 MiB/s | 83.7 KiB | 00m00s [543/750] Installing texlive-attachfile 100% | 28.3 MiB/s | 522.1 KiB | 00m00s [544/750] Installing texlive-parskip-12 100% | 414.4 MiB/s | 424.3 KiB | 00m00s [545/750] Installing texlive-breqn-12:s 100% | 626.2 MiB/s | 1.3 MiB | 00m00s [546/750] Installing texlive-fancyref-1 100% | 170.0 MiB/s | 174.0 KiB | 00m00s [547/750] Installing texlive-latex-lab- 100% | 610.4 MiB/s | 16.5 MiB | 00m00s [548/750] Installing texlive-ltabptch-1 100% | 307.0 MiB/s | 314.4 KiB | 00m00s [549/750] Installing texlive-lineno-12: 100% | 417.3 MiB/s | 1.3 MiB | 00m00s [550/750] Installing texlive-t2-12:svn4 100% | 151.9 MiB/s | 466.6 KiB | 00m00s [551/750] Installing texlive-collcell-1 100% | 218.3 MiB/s | 223.6 KiB | 00m00s [552/750] Installing texlive-crop-12:sv 100% | 349.9 MiB/s | 358.3 KiB | 00m00s [553/750] Installing texlive-psfrag-12: 100% | 124.0 MiB/s | 126.9 KiB | 00m00s [554/750] Installing texlive-xfrac-12:s 100% | 663.5 MiB/s | 679.5 KiB | 00m00s [555/750] Installing texlive-algorithms 100% | 382.7 MiB/s | 391.9 KiB | 00m00s [556/750] Installing texlive-titlesec-1 100% | 421.3 MiB/s | 862.8 KiB | 00m00s [557/750] Installing texlive-bidicontou 100% | 0.0 B/s | 63.6 KiB | 00m00s [558/750] Installing texlive-bidishadow 100% | 139.3 MiB/s | 142.7 KiB | 00m00s [559/750] Installing texlive-logreq-12: 100% | 55.5 MiB/s | 56.8 KiB | 00m00s [560/750] Installing texlive-pdfmanagem 100% | 596.1 MiB/s | 6.6 MiB | 00m00s [561/750] Installing texlive-typehtml-1 100% | 220.1 MiB/s | 225.4 KiB | 00m00s [562/750] Installing texlive-underscore 100% | 282.0 MiB/s | 288.7 KiB | 00m00s [563/750] Installing texlive-ae-12:svn1 100% | 123.3 MiB/s | 505.1 KiB | 00m00s [564/750] Installing texlive-mnsymbol-1 100% | 378.1 MiB/s | 6.0 MiB | 00m00s [565/750] Installing texlive-bibtopic-1 100% | 297.4 MiB/s | 304.5 KiB | 00m00s [566/750] Installing texlive-bidi-atbeg 100% | 214.8 MiB/s | 220.0 KiB | 00m00s [567/750] Installing texlive-xeindex-12 100% | 112.3 MiB/s | 115.0 KiB | 00m00s [568/750] Installing texlive-tocvsec2-1 100% | 316.0 MiB/s | 323.6 KiB | 00m00s [569/750] Installing texlive-makerobust 100% | 0.0 B/s | 86.0 KiB | 00m00s [570/750] Installing texlive-zref-12:sv 100% | 393.0 MiB/s | 804.9 KiB | 00m00s [571/750] Installing texlive-luatex85-1 100% | 188.1 MiB/s | 192.6 KiB | 00m00s [572/750] Installing texlive-ctablestac 100% | 165.3 MiB/s | 169.3 KiB | 00m00s [573/750] Installing texlive-luatexbase 100% | 284.5 MiB/s | 291.3 KiB | 00m00s [574/750] Installing texlive-luaotfload 100% | 250.4 MiB/s | 8.3 MiB | 00m00s [575/750] Installing texlive-fontspec-1 100% | 221.6 MiB/s | 1.6 MiB | 00m00s [576/750] Installing texlive-babel-12:s 100% | 100.9 MiB/s | 3.9 MiB | 00m00s [577/750] Installing texlive-unicode-ma 100% | 639.3 MiB/s | 3.8 MiB | 00m00s [578/750] Installing texlive-metalogo-1 100% | 119.2 MiB/s | 122.0 KiB | 00m00s [579/750] Installing texlive-oberdiek-1 100% | 624.3 MiB/s | 11.2 MiB | 00m00s [580/750] Installing texlive-pdfpages-1 100% | 320.1 MiB/s | 327.8 KiB | 00m00s [581/750] Installing texlive-babelbib-1 100% | 488.6 MiB/s | 2.4 MiB | 00m00s [582/750] Installing texlive-xmltex-12: 100% | 8.8 MiB/s | 161.4 KiB | 00m00s [583/750] Installing texlive-mathspec-1 100% | 250.8 MiB/s | 256.8 KiB | 00m00s [584/750] Installing texlive-realscript 100% | 127.4 MiB/s | 130.5 KiB | 00m00s [585/750] Installing texlive-xltxtra-12 100% | 123.8 MiB/s | 126.7 KiB | 00m00s [586/750] Installing texlive-fontbook-1 100% | 731.4 MiB/s | 1.5 MiB | 00m00s [587/750] Installing texlive-xecolor-12 100% | 0.0 B/s | 27.1 KiB | 00m00s [588/750] Installing texlive-luacode-12 100% | 418.2 MiB/s | 428.3 KiB | 00m00s [589/750] Installing texlive-luatextra- 100% | 306.7 MiB/s | 314.0 KiB | 00m00s [590/750] Installing texlive-xecyr-12:s 100% | 268.5 MiB/s | 824.7 KiB | 00m00s [591/750] Installing texlive-varwidth-1 100% | 0.0 B/s | 65.6 KiB | 00m00s [592/750] Installing texlive-ifmtarg-12 100% | 0.0 B/s | 57.3 KiB | 00m00s [593/750] Installing texlive-xifthen-12 100% | 497.2 MiB/s | 509.1 KiB | 00m00s [594/750] Installing texlive-trimspaces 100% | 187.8 MiB/s | 192.3 KiB | 00m00s [595/750] Installing texlive-environ-12 100% | 172.9 MiB/s | 177.0 KiB | 00m00s [596/750] Installing texlive-pst-pdf-12 100% | 66.2 MiB/s | 1.3 MiB | 00m00s [597/750] Installing texlive-pstricks-1 100% | 576.0 MiB/s | 13.8 MiB | 00m00s [598/750] Installing texlive-pst-3d-12: 100% | 190.2 MiB/s | 194.8 KiB | 00m00s [599/750] Installing texlive-pst-node-1 100% | 347.4 MiB/s | 1.0 MiB | 00m00s [600/750] Installing texlive-pst-plot-1 100% | 470.7 MiB/s | 2.4 MiB | 00m00s [601/750] Installing texlive-pst-coil-1 100% | 606.5 MiB/s | 3.6 MiB | 00m00s [602/750] Installing texlive-pst-eps-12 100% | 150.2 MiB/s | 153.8 KiB | 00m00s [603/750] Installing texlive-pst-fill-1 100% | 498.9 MiB/s | 1.0 MiB | 00m00s [604/750] Installing texlive-pst-grad-1 100% | 293.8 MiB/s | 300.8 KiB | 00m00s [605/750] Installing texlive-pst-text-1 100% | 250.2 MiB/s | 256.2 KiB | 00m00s [606/750] Installing texlive-pst-tree-1 100% | 275.2 MiB/s | 281.8 KiB | 00m00s [607/750] Installing texlive-pst-math-1 100% | 300.2 MiB/s | 307.4 KiB | 00m00s [608/750] Installing texlive-pstricks-a 100% | 487.3 MiB/s | 18.0 MiB | 00m00s [609/750] Installing texlive-fancyvrb-1 100% | 284.9 MiB/s | 291.7 KiB | 00m00s [610/750] Installing texlive-listings-1 100% | 623.5 MiB/s | 4.4 MiB | 00m00s [611/750] Installing texlive-pst-ovl-12 100% | 69.2 MiB/s | 70.9 KiB | 00m00s [612/750] Installing texlive-seminar-12 100% | 384.1 MiB/s | 786.6 KiB | 00m00s [613/750] Installing texlive-appendix-1 100% | 331.9 MiB/s | 339.9 KiB | 00m00s [614/750] Installing texlive-changebar- 100% | 410.1 MiB/s | 839.8 KiB | 00m00s [615/750] Installing texlive-multirow-1 100% | 638.9 MiB/s | 654.2 KiB | 00m00s [616/750] Installing texlive-subfigure- 100% | 217.6 MiB/s | 445.5 KiB | 00m00s [617/750] Installing texlive-avantgar-1 100% | 173.7 MiB/s | 1.0 MiB | 00m00s [618/750] Installing texlive-bookman-12 100% | 192.0 MiB/s | 982.9 KiB | 00m00s [619/750] Installing texlive-charter-12 100% | 203.8 MiB/s | 417.3 KiB | 00m00s [620/750] Installing texlive-cmextra-12 100% | 69.1 MiB/s | 141.6 KiB | 00m00s [621/750] Installing texlive-courier-12 100% | 200.7 MiB/s | 822.0 KiB | 00m00s [622/750] Installing texlive-euro-ce-12 100% | 46.0 MiB/s | 47.1 KiB | 00m00s [623/750] Installing texlive-eurosym-12 100% | 172.8 MiB/s | 531.0 KiB | 00m00s [624/750] Installing texlive-helvetic-1 100% | 222.1 MiB/s | 1.8 MiB | 00m00s [625/750] Installing texlive-manfnt-fon 100% | 43.1 MiB/s | 44.2 KiB | 00m00s [626/750] Installing texlive-mflogo-fon 100% | 42.6 MiB/s | 43.6 KiB | 00m00s [627/750] Installing texlive-ncntrsbk-1 100% | 188.2 MiB/s | 963.6 KiB | 00m00s [628/750] Installing texlive-pxfonts-12 100% | 284.3 MiB/s | 1.4 MiB | 00m00s [629/750] Installing texlive-rsfs-12:sv 100% | 104.9 MiB/s | 107.4 KiB | 00m00s [630/750] Installing texlive-tex-gyre-m 100% | 324.2 MiB/s | 3.2 MiB | 00m00s [631/750] Installing texlive-times-12:s 100% | 166.7 MiB/s | 1.0 MiB | 00m00s [632/750] Installing texlive-txfonts-12 100% | 242.9 MiB/s | 2.4 MiB | 00m00s [633/750] Installing texlive-utopia-12: 100% | 181.6 MiB/s | 557.8 KiB | 00m00s [634/750] Installing texlive-zapfchan-1 100% | 92.9 MiB/s | 190.3 KiB | 00m00s [635/750] Installing texlive-bidipresen 100% | 285.1 MiB/s | 292.0 KiB | 00m00s [636/750] Installing texlive-businessca 100% | 308.1 MiB/s | 631.1 KiB | 00m00s [637/750] Installing texlive-ctex-faq-1 100% | 357.2 MiB/s | 731.5 KiB | 00m00s [638/750] Installing texlive-font-chang 100% | 338.5 MiB/s | 693.2 KiB | 00m00s [639/750] Installing texlive-simple-res 100% | 116.9 MiB/s | 119.7 KiB | 00m00s [640/750] Installing texlive-simple-the 100% | 265.1 MiB/s | 271.4 KiB | 00m00s [641/750] Installing texlive-tetragonos 100% | 400.0 MiB/s | 1.6 MiB | 00m00s [642/750] Installing texlive-unicode-bi 100% | 22.5 MiB/s | 23.1 KiB | 00m00s [643/750] Installing texlive-unimath-pl 100% | 249.3 MiB/s | 1.2 MiB | 00m00s [644/750] Installing texlive-xebaposter 100% | 512.0 MiB/s | 1.0 MiB | 00m00s [645/750] Installing texlive-xechangeba 100% | 64.8 MiB/s | 66.4 KiB | 00m00s [646/750] Installing texlive-xetex-deva 100% | 567.4 MiB/s | 1.1 MiB | 00m00s [647/750] Installing texlive-xetex-itra 100% | 231.6 MiB/s | 1.2 MiB | 00m00s [648/750] Installing texlive-xetex-pstr 100% | 3.4 MiB/s | 3.5 KiB | 00m00s [649/750] Installing texlive-xetex-tibe 100% | 567.8 MiB/s | 1.1 MiB | 00m00s [650/750] Installing texlive-xetexfonti 100% | 0.0 B/s | 19.0 KiB | 00m00s [651/750] Installing texlive-xetexref-1 100% | 225.8 MiB/s | 231.2 KiB | 00m00s [652/750] Installing texlive-xevlna-12: 100% | 94.2 MiB/s | 96.5 KiB | 00m00s [653/750] Installing texlive-eepic-12:s 100% | 193.5 MiB/s | 198.1 KiB | 00m00s [654/750] Installing texlive-overpic-12 100% | 412.4 MiB/s | 422.3 KiB | 00m00s [655/750] Installing texlive-cjkpunct-1 100% | 37.8 MiB/s | 193.7 KiB | 00m00s [656/750] Installing texlive-fandol-12: 100% | 305.9 MiB/s | 33.3 MiB | 00m00s [657/750] Installing texlive-ttfutils-1 100% | 53.6 MiB/s | 1.2 MiB | 00m00s [658/750] Installing texlive-xcjk2uni-1 100% | 219.6 MiB/s | 2.2 MiB | 00m00s [659/750] Installing texlive-xpinyin-12 100% | 93.2 MiB/s | 1.4 MiB | 00m00s [660/750] Installing texlive-zhmetrics- 100% | 79.1 MiB/s | 6.4 MiB | 00m00s [661/750] Installing texlive-zhmetrics- 100% | 750.0 MiB/s | 7.5 MiB | 00m00s [662/750] Installing texlive-zhnumber-1 100% | 359.8 MiB/s | 368.4 KiB | 00m00s [663/750] Installing texlive-was-12:svn 100% | 357.4 MiB/s | 366.0 KiB | 00m00s [664/750] Installing texlive-perltex-12 100% | 25.4 MiB/s | 468.0 KiB | 00m00s [665/750] Installing texlive-fontwrap-1 100% | 379.5 MiB/s | 388.6 KiB | 00m00s [666/750] Installing texlive-lastpage-1 100% | 621.0 MiB/s | 635.9 KiB | 00m00s [667/750] Installing texlive-undolabl-1 100% | 382.3 MiB/s | 391.5 KiB | 00m00s [668/750] Installing texlive-xits-12:sv 100% | 352.1 MiB/s | 1.4 MiB | 00m00s [669/750] Installing texlive-gensymb-12 100% | 253.0 MiB/s | 259.1 KiB | 00m00s [670/750] Installing texlive-zbmath-rev 100% | 55.8 MiB/s | 285.9 KiB | 00m00s [671/750] Installing texlive-arphic-12: 100% | 464.3 MiB/s | 31.1 MiB | 00m00s [672/750] Installing texlive-cns-12:svn 100% | 241.3 MiB/s | 9.7 MiB | 00m00s [673/750] Installing texlive-uhc-12:svn 100% | 126.1 MiB/s | 7.9 MiB | 00m00s [674/750] Installing texlive-wadalab-12 100% | 425.8 MiB/s | 21.3 MiB | 00m00s [675/750] Installing texlive-cjk-12:svn 100% | 222.0 MiB/s | 2.9 MiB | 00m00s [676/750] Installing texlive-ascmac-12: 100% | 202.1 MiB/s | 206.9 KiB | 00m00s [677/750] Installing texlive-luatexja-1 100% | 511.0 MiB/s | 5.6 MiB | 00m00s [678/750] Installing texlive-convbkmk-1 100% | 1.0 MiB/s | 17.4 KiB | 00m00s [679/750] Installing texlive-uptex-base 100% | 167.3 MiB/s | 685.3 KiB | 00m00s [680/750] Installing texlive-uptex-font 100% | 714.3 MiB/s | 15.7 MiB | 00m00s [681/750] Installing texlive-minifp-12: 100% | 504.2 MiB/s | 516.3 KiB | 00m00s [682/750] Installing texlive-lettrine-1 100% | 315.5 MiB/s | 646.1 KiB | 00m00s [683/750] Installing texlive-philokalia 100% | 236.2 MiB/s | 241.9 KiB | 00m00s [684/750] Installing texlive-latex-firs 100% | 330.2 MiB/s | 338.1 KiB | 00m00s [685/750] Installing texlive-fnpara-12: 100% | 199.4 MiB/s | 204.2 KiB | 00m00s [686/750] Installing texlive-sectsty-12 100% | 262.4 MiB/s | 268.7 KiB | 00m00s [687/750] Installing texlive-kotex-utf- 100% | 692.7 MiB/s | 11.1 MiB | 00m00s [688/750] Installing texlive-cjk-ko-12: 100% | 254.2 MiB/s | 260.3 KiB | 00m00s [689/750] Installing texlive-xetexko-12 100% | 288.6 MiB/s | 591.1 KiB | 00m00s [690/750] Installing texlive-luatexko-1 100% | 499.7 MiB/s | 511.7 KiB | 00m00s [691/750] Installing texlive-arydshln-1 100% | 463.3 MiB/s | 948.8 KiB | 00m00s [692/750] Installing perl-LWP-Protocol- 100% | 31.5 MiB/s | 32.2 KiB | 00m00s [693/750] Installing perl-LDAP-1:0.68-1 100% | 188.0 MiB/s | 962.3 KiB | 00m00s [694/750] Installing perl-Log-Log4perl- 100% | 38.9 MiB/s | 837.3 KiB | 00m00s [695/750] Installing perl-XML-SAX-0:1.0 100% | 2.8 MiB/s | 126.0 KiB | 00m00s [696/750] Installing perl-XML-LibXML-1: 100% | 11.9 MiB/s | 939.9 KiB | 00m00s [697/750] Installing perl-XML-LibXML-Si 100% | 51.1 MiB/s | 52.3 KiB | 00m00s [698/750] Installing perl-XML-LibXSLT-0 100% | 71.4 MiB/s | 146.3 KiB | 00m00s [699/750] Installing biber-0:2.22-2.fc4 100% | 55.0 MiB/s | 1.4 MiB | 00m00s [700/750] Installing texlive-biblatex-1 100% | 623.3 MiB/s | 21.8 MiB | 00m00s [701/750] Installing texlive-biblatex-g 100% | 567.5 MiB/s | 4.0 MiB | 00m00s [702/750] Installing libX11-common-0:1. 100% | 169.3 MiB/s | 1.2 MiB | 00m00s [703/750] Installing libX11-0:1.8.13-3. 100% | 337.0 MiB/s | 1.3 MiB | 00m00s [704/750] Installing libXt-0:1.3.1-5.fc 100% | 428.6 MiB/s | 438.9 KiB | 00m00s [705/750] Installing libXext-0:1.3.6-6. 100% | 89.0 MiB/s | 91.1 KiB | 00m00s [706/750] Installing libXmu-0:1.2.1-6.f 100% | 192.4 MiB/s | 197.0 KiB | 00m00s [707/750] Installing libXpm-0:3.5.19-4. 100% | 162.4 MiB/s | 166.3 KiB | 00m00s [708/750] Installing libXaw-0:1.0.16-6. 100% | 252.2 MiB/s | 516.5 KiB | 00m00s [709/750] Installing libXi-0:1.8.3-2.fc 100% | 79.8 MiB/s | 81.7 KiB | 00m00s [710/750] Installing texlive-xdvi-12:sv 100% | 36.8 MiB/s | 753.3 KiB | 00m00s [711/750] Installing libgs-0:10.08.0-1. 100% | 495.1 MiB/s | 22.3 MiB | 00m00s [712/750] Installing ghostscript-0:10.0 100% | 1.9 MiB/s | 34.9 KiB | 00m00s [713/750] Installing ghostscript-tools- 100% | 189.9 KiB/s | 3.4 KiB | 00m00s [714/750] Installing ghostscript-tools- 100% | 281.2 KiB/s | 5.1 KiB | 00m00s [715/750] Installing texlive-thumbpdf-1 100% | 5.4 MiB/s | 98.9 KiB | 00m00s [716/750] Installing ghostscript-tools- 100% | 107.3 KiB/s | 1.8 KiB | 00m00s [717/750] Installing latexmk-0:4.88-2.f 100% | 51.2 MiB/s | 1.0 MiB | 00m00s [718/750] Installing texlive-metafont-1 100% | 41.1 MiB/s | 842.1 KiB | 00m00s [719/750] Installing libXrender-0:0.9.1 100% | 50.0 MiB/s | 51.2 KiB | 00m00s [720/750] Installing cairo-0:1.18.6-1.f 100% | 305.3 MiB/s | 1.8 MiB | 00m00s [721/750] Installing texlive-uptex-12:s 100% | 106.8 MiB/s | 2.6 MiB | 00m00s [722/750] Installing texlive-ptex-12:sv 100% | 50.8 MiB/s | 1.1 MiB | 00m00s [723/750] Installing texlive-plautopatc 100% | 180.0 MiB/s | 184.3 KiB | 00m00s [724/750] Installing texlive-platex-12: 100% | 504.6 MiB/s | 2.5 MiB | 00m00s [725/750] Installing texlive-platex-too 100% | 320.3 MiB/s | 655.9 KiB | 00m00s [726/750] Installing libicu-0:78.3-8.fc 100% | 406.9 MiB/s | 37.8 MiB | 00m00s [727/750] Installing texlive-xetex-12:s 100% | 93.3 MiB/s | 2.2 MiB | 00m00s [728/750] Installing texlive-dvipdfmx-1 100% | 159.1 MiB/s | 3.8 MiB | 00m00s [729/750] Installing texlive-collection 100% | 0.0 B/s | 124.0 B | 00m00s [730/750] Installing texlive-ctex-12:sv 100% | 387.8 MiB/s | 2.7 MiB | 00m00s [731/750] Installing texlive-xecjk-12:s 100% | 386.2 MiB/s | 3.1 MiB | 00m00s [732/750] Installing texlive-collection 100% | 0.0 B/s | 124.0 B | 00m00s [733/750] Installing texlive-shtthesis- 100% | 554.2 MiB/s | 2.2 MiB | 00m00s [734/750] Installing texlive-collection 100% | 121.1 KiB/s | 124.0 B | 00m00s [735/750] Installing dblatex-0:0.3.12-3 100% | 45.8 MiB/s | 5.3 MiB | 00m00s [736/750] Installing texlive-showexpl-1 100% | 315.6 MiB/s | 646.4 KiB | 00m00s [737/750] Installing texlive-bidi-12:sv 100% | 414.6 MiB/s | 5.4 MiB | 00m00s [738/750] Installing texlive-polyglossi 100% | 180.0 MiB/s | 1.4 MiB | 00m00s [739/750] Installing texlive-fixlatvian 100% | 190.9 MiB/s | 195.4 KiB | 00m00s [740/750] Installing texlive-arabxetex- 100% | 496.4 MiB/s | 1.5 MiB | 00m00s [741/750] Installing texlive-ptext-12:s 100% | 162.0 MiB/s | 165.9 KiB | 00m00s [742/750] Installing texlive-collection 100% | 0.0 B/s | 124.0 B | 00m00s [743/750] Installing texlive-collection 100% | 0.0 B/s | 124.0 B | 00m00s [744/750] Installing cmake-filesystem-0 100% | 9.1 MiB/s | 9.4 KiB | 00m00s [745/750] Installing libssh-devel-0:0.1 100% | 202.0 MiB/s | 206.9 KiB | 00m00s [746/750] Installing linuxdoc-tools-0:0 100% | 3.9 MiB/s | 522.5 KiB | 00m00s [747/750] Installing readline-devel-0:8 100% | 196.5 MiB/s | 603.5 KiB | 00m00s [748/750] Installing bison-0:3.8.2-16.f 100% | 126.7 MiB/s | 3.5 MiB | 00m00s [749/750] Installing flex-0:2.6.4-25.fc 100% | 39.0 MiB/s | 839.2 KiB | 00m00s [750/750] Installing systemd-rpm-macros 100% | 124.0 B/s | 8.9 KiB | 01m13s Warning: skipped OpenPGP checks for 49 packages from repository: copr_base Complete! Building target platforms: x86_64 Building for target x86_64 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% | 94.5 KiB/s | 24.5 KiB | 00m00s Additional repo copr_tstellar_fedora_c 100% | 7.9 KiB/s | 1.5 KiB | 00m00s Additional repo copr_fedora_llvm_team_ 100% | 7.9 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 8.0 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Nothing to do. Package "bison-3.8.2-16.fc46.x86_64" is already installed. Package "flex-2.6.4-25.fc46.x86_64" is already installed. Package "gcc-16.2.1-2.fc46.1.x86_64" is already installed. Package "libssh-devel-0.12.2-1.fc45.x86_64" is already installed. Package "linuxdoc-tools-0.9.85-4.fc46.x86_64" is already installed. Package "make-1:4.4.1-13.fc46.x86_64" is already installed. Package "ncurses-devel-6.6-3.fc46.x86_64" is already installed. Package "perl-FindBin-1.54-527.fc45.noarch" is already installed. Package "readline-devel-8.3-6.fc46.x86_64" is already installed. Package "sed-4.10-2.fc45.x86_64" is already installed. Package "sgml-common-0.6.3-70.fc46.noarch" is already installed. Package "systemd-rpm-macros-262-3.fc46.noarch" is already installed. Package "texlive-enumitem-12:svn77682-7.fc45.noarch" is already installed. 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: x86_64 Building for target x86_64 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.TxOxpE 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" 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="x86_64" RPM_OS="linux" RPM_BUILD_NCPUS="4" 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.Bv4hBE + 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.l0QhY5 + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --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=x86_64-redhat-linux --host=x86_64-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 x86_64-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... x86_64-redhat-linux-gnu checking host system type... x86_64-redhat-linux-gnu checking for x86_64-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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 x86_64-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 -j4 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 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 ( 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_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 m4 -s -DTARGET=H -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.h sed 's#{{ VERSION }}#3.3.2#' obj/doc/bird.sgml 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 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 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 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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); | ^ 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/flowspec.o -c lib/flowspec.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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/lists.o -c lib/lists.c | == 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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/mac.o -c lib/mac.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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/netindex.o -c lib/netindex.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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/lib/printf.o -c lib/printf.c In file included from lib/printf.c:10: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h: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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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-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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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) \ | ^~~~~~~~~~~ :99:1: note: expanded from here 99 | 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 parentheses [-Wparentheses] 112 | if (node->TLIST_ITEM.prev = list->last) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ./lib/tlists.h:112:29: note: place parentheses around the assignment to silence this warning 112 | if (node->TLIST_ITEM.prev = list->last) | ^ | ( ) ./lib/tlists.h:112: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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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. 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -pthread -fno-strict-aliasing -fno-strict-overflow -DBIRD_VERSION='"3.3.2"' -MMD -MP -o obj/client/util.o -c client/util.c In file included from client/util.c:13: In file included from ./nest/bird.h:14: In file included from ./lib/ip.h:13: In file included from ./lib/string.h:16: In file included from ./lib/resource.h: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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -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.cm7WHK + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --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 -j4 --strict-build-id -m -i --build-id-seed 3.3.2-1.fc46 --unique-debug-suffix -3.3.2-1.fc46.x86_64 --unique-debug-src-base bird-3.3.2-1.fc46.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 --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.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/bin/birdc-3.3.2-1.fc46.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/bin/birdcl-3.3.2-1.fc46.x86_64.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.x86_64 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 -j4 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j4 /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.gZvkds + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --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.051666565s [ OK ] obj/filter/trie_test 0.819430690s [ OK ] obj/filter/filter_test 0.723263164s [ OK ] obj/lib/a-set_test 0.001623983s [ OK ] obj/lib/a-path_test 0.017459047s [ OK ] obj/lib/attribute_cleanup_test 0.000227013s [ OK ] obj/lib/bitmap_test 0.770570711s [ OK ] obj/lib/heap_test 0.005749360s [ OK ] obj/lib/buffer_test 0.000778970s [ OK ] obj/lib/event_test 0.000492474s [ OK ] obj/lib/flowspec_test 0.002174799s [ OK ] obj/lib/bitops_test 0.000868085s [ OK ] obj/lib/patmatch_test 0.000245647s [ OK ] obj/lib/fletcher16_test 0.000416134s [ OK ] obj/lib/slist_test 0.004968398s [ OK ] obj/lib/rt-normalize_test 0.000737330s [ OK ] obj/lib/checksum_test 0.000622202s [ OK ] obj/lib/lists_test 0.001026353s [ OK ] obj/lib/locking_test 0.580369922s [ OK ] obj/lib/mac_test 0.007523857s [ OK ] obj/lib/ip_test 0.001251173s [ OK ] obj/lib/hash_test 0.121449004s [ OK ] obj/lib/printf_test 0.000834155s [ OK ] obj/lib/rcu_test 0.086659147s [ OK ] obj/lib/slab_test 0.896949852s [ OK ] obj/lib/mslab_test 0.220861022s [ OK ] obj/lib/islab_test 0.200613274s [ OK ] obj/lib/tlists_test 0.000908652s [ OK ] obj/lib/type_test 0.000357092s [ OK ] obj/nest/rt-fib_test 1.765174820s [ OK ] obj/sysdep/unix/alloc_test 1.341873818s [ OK ] + RPM_EC=0 ++ jobs -p + exit 0 Processing files: bird-3.3.2-1.fc46.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.pUSTLz + 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(x86-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.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.15)(64bit) libc.so.6(GLIBC_2.16)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.25)(64bit) libc.so.6(GLIBC_2.27)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(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_2.4)(64bit) libc.so.6(GLIBC_2.7)(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.8QOB1P + 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.x86_64 Provides: bird-debugsource = 3.3.2-1.fc46 bird-debugsource(x86-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.x86_64 Provides: bird-debuginfo = 3.3.2-1.fc46 bird-debuginfo(x86-64) = 3.3.2-1.fc46 debuginfo(build-id) = 347faef13844549ef66c053a9d2b45639b5b6fb8 debuginfo(build-id) = 45abf6946cf3f3dba806836b936b34aff5ba6660 debuginfo(build-id) = 7c92ff55a656911b46d989f6c6a09d7fc9393677 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: bird-debugsource(x86-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.x86_64.rpm Wrote: /builddir/build/RPMS/bird-debugsource-3.3.2-1.fc46.x86_64.rpm Wrote: /builddir/build/RPMS/bird-debuginfo-3.3.2-1.fc46.x86_64.rpm Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.SQxgx6 + 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-x86_64-1790845717.798376/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) 3 minutes 30 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-debuginfo", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "x86_64" }, { "name": "bird", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "src" }, { "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": "x86_64" }, { "name": "bird", "epoch": null, "version": "3.3.2", "release": "1.fc46", "arch": "x86_64" } ] } RPMResults finished